这是我的代码:
#include <stdio.h>
#include <stdlib.h>
const char FILE_NAME[] = "inputfile.txt";
int main()
{
FILE *in_file; /* input file */
in_file = fopen(FILE_NAME, "r");
if (in_file == NULL) {
printf("Cannot open %s\n", FILE_NAME);
exit(8);
}else{
printf("File opened %s\n", FILE_NAME);
}
fclose(in_file);
return (0);
}
我收到此错误:
无法打开inputfile.txt
但文件就在那里。 有人能帮助我吗?
(如果我将&#34; r&#34;更改为&#34; w&#34;我可以写入该文件,但我无法在我的SSD上找到该文件)< / em>的
答案 0 :(得分:5)
程序将在当前工作目录中查找该文件。这很可能与编译的可执行文件位于同一目录。
如果您使用的是IDE,请检查项目设置并检查已编译的可执行文件的放置位置。然后手动将文本文件复制到该目录或编辑项目,以便构建它自动复制文件。
如果您在命令行工作(假设编译器名为gcc
):
cd ~/Documents/programming/c/PracticalC/chapter14
gcc -Wall ch14pexercise1.c -o prog
./prog
答案 1 :(得分:0)
const char FILE_NAME [] =&#34; inputfile.txt&#34 ;;
int main() {
FILE *in_file; /* write file */
in_file = fopen(FILE_NAME, "w");
if (in_file == NULL) {
printf("Cannot open %s\n", FILE_NAME);
exit(8);
}else{
printf("File opened %s\n", FILE_NAME);
}
fclose(in_file);
/ 读取文件 /
FILE *in_file; /* input file */
in_file = fopen(FILE_NAME, "r");
if (in_file == NULL) {
printf("Cannot open %s\n", FILE_NAME);
exit(8);
}else{
printf("File opened %s\n", FILE_NAME);
}
fclose(in_file);
return (0);
}
如果它的工作路径