gpt4 book ai didi

c - 有没有办法在文件目录更改时使用 fopen() 读/写文件,但无需在实际代码中手动更改目录?

转载 作者:行者123 更新时间:2023-11-30 16:17:14 24 4
gpt4 key购买 nike

我知道如何读取和写入文件,但我将 fopen() 包含在我的大学项目中,并且我们需要将运行程序所需的所有内容发送给讲师。但是如果目录名称发生变化,我的程序是否有可能无法读取该文件?

int main(void)
{

FILE * fptr;

fptr = fopen("C:\\Users\\username\\Documents\\folder\\filename.txt", "r");

char oneline[MAX_LEN];

while (!feof(fptr))
{
while (fgets(oneline, sizeof(oneline), fptr) != NULL)
printf("%s", oneline);
}

fclose(fptr);

return 0;
}

比如我的教授下载了这个文件,并且保存在downloads中,而不是我写的目录之类的文件中,那文件不是无法读取吗?如果是这样,有没有办法让我的代码“适应”目录中的更改?

最佳答案

使用相对路径。

    //if your executable and the textfile are in the same directory just use
fptr = fopen("filename.txt", "r");
//if e.g. your executable is in Documents use
fptr = fopen("folder//filename.txt", "r");

顺便说一下,使用“..”进入父目录。

或者,如果您想在运行时更改路径,请将其存储在 C 字符串(字符数组/字符指针)中,这样您只需将字符指针设置为您想要的字符串即可轻松替换/更改它。 p>

char * path = "your path here";
char * someotherpath = "other path (maybe from userinput)"
// you can easily change your the path
if(some condtion)
path = someotherpath;
fptr = fopen(path, "r");

应该自动检测它是绝对路径还是相对路径。

关于c - 有没有办法在文件目录更改时使用 fopen() 读/写文件,但无需在实际代码中手动更改目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56304000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com