gpt4 book ai didi

c - 如何打开不在同一文件夹中的文本文件?

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:40 25 4
gpt4 key购买 nike

因为 C 不是我用来编程的语言,所以我不知道该怎么做。

我有一个项目文件夹,其中包含所有 .c 和 .h 文件,还有一个 conf 文件夹,在该文件夹下有一个要读取的 config.txt 文件。我怎样才能打开它?

FILE* fp = fopen("/conf/config.txt", "r");

if (fp != NULL)
{
//do stuff
}

else
printf("couldn't open file\n");

我不断收到错误消息。为什么?

顺便说一句,这只适用于 Windows,不适用于 Linux。

谢谢。

最佳答案

最简单的方法是使用绝对路径...

my_file = fopen("/path/to/my/file.txt", "r");

或者您可以使用相对路径。如果您的可执行文件位于 /home/me/bin 而您的 txt 文件位于 /home/me/doc,那么您的相对路径可能类似于

my_file = fopen("../doc/my_file.txt", "r");

在相对路径中要记住的重要一点是,当可执行文件运行时,它是相对于当前工作目录 的。所以如果你使用上面的相对路径,但是你在你的 /tmp 目录中并且你运行了 /home/me/bin/myprog,它会尝试打开 /tmp/../doc/my_file.txt(或 /doc/my_file.txt)可能不存在。

更稳健的选择是将文件的路径作为参数传递给程序,并将其作为第一个参数传递给 fopen。最简单的示例是仅使用 main 的参数中的 argv[1],即

int main(int argc, char **argv)
{
FILE *my_file = fopen(argv[1], "r");
/* ... */
return 0;
}

当然,您需要进行错误检查以验证 argc > 2 等

关于c - 如何打开不在同一文件夹中的文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2925241/

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