【发布时间】:2016-11-26 05:58:56
【问题描述】:
我正在尝试从 C 编程中的文件中读取,我认为我做的一切都是正确的,但我得到一个错误:“无法打开文件......”所以它显然没有正确访问文件,我不能找出原因。文件“A00924956Results2016”与我的程序文件位于同一个控制台应用程序文件夹中。所以我不应该使用文件路径对吗?任何帮助将不胜感激。 (我已经简化了我要阅读的内容,以便在继续我的任务之前让它访问文件)。我还将附上我的文件浏览器的屏幕截图。
#include <stdio.h>
#include <math.h>
#include <string.h>
void check(FILE*);
int main()
{
FILE *fp1;
char ch, a;
fp1 = fopen("A00924956Results2016", "r");
check(fp1);
fscanf(fp1, "%c", &a);
printf("First character is %c", a);
fclose(fp1);
getchar();
return 0;
}
void check(FILE *fp1)
{
fp1 = fopen("A00924956Results2016.dat", "r");
if (fp1 == NULL)
{
printf("Not accessing file properly\n");
}
}
【问题讨论】:
-
您是否正在编译并将可执行文件保存在同一目录中?此外,在
check()方法中,仅检查参数 fp1 是否为空。不要尝试再次打开文件。 -
试试
fp1 = fopen("A00924956Results2016.txt", "r");(默认情况下Windows隐藏已知的扩展)你想用这个做什么:fp1 = fopen("A00924956Results2016.dat", "r");?删除它并尝试前者。 -
另外,发布此类问题时,请尽量缩短代码。从代码中删除所有不相关的内容。始终尝试制作minimal reproducible example
-
抱歉下次再做。 .dat 是一个错误。我都改成了.txt,还是说不能访问文件!!
-
请修正您的问题以显示您的最新代码。