完整编辑:
我很沮丧,我不知道我在这里做错了什么 我在代码中还有很多事情要做,但我什至无法打开文件来继续我的工作。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
char letter;
FILE *fp;
fp=fopen("C:\\Users\\LENOVO\\Desktop\\data.txt","r");
if(fp==NULL)
{
printf("error");
getch();
exit(1);
}
while(fscanf(fp,"%d",&letter)!=EOF)
putchar(letter);
getch();
fclose(fp);
}
仍然打印错误
最佳答案
好的,首先让我们看一下您的文件路径。有两种方法可以从本地存储访问文件:
相对地址(如果文件与您的应用程序具有相同的根文件夹)
绝对地址(如果文件位于计算机存储上的确定位置)
我发现您正在尝试使用绝对地址来读取文件。您的路径是正确的,但您必须注意 C 中的字符串格式,因为\字符可能会被解释为其他内容。
我建议改用这个(双反斜杠)
input=fopen("C:\\Users\\LENOVO\\Desktop\\data.txt","r");
这将阻止字符串格式解释。
其次,EOF只是一个预定义的宏常量,我认为它等于-1,所以你的 while(! (-1) ) 代码不适合读取直到文件末尾。
为了从文件中读取直到到达其末尾,我会考虑 fscanf() 的此属性: fscanf() 在到达文件末尾时返回 EOF。
while(fscanf(input,"%ch",&letter) != EOF) {
putchar(letter);
}
这种从文件读取的方式应该可以完成工作。
关于c - 在 C 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44089368/