c - 在 C 中打开文件

标签 c data-files

完整编辑:

我很沮丧,我不知道我在这里做错了什么 我在代码中还有很多事情要做,但我什至无法打开文件来继续我的工作。

#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);
}‪

路径图片:http://imgur.com/a/YwFYy

仍然打印错误

最佳答案

好的,首先让我们看一下您的文件路径。有两种方法可以从本地存储访问文件:

相对地址(如果文件与您的应用程序具有相同的根文件夹)

绝对地址(如果文件位于计算机存储上的确定位置)

我发现您正在尝试使用绝对地址来读取文件。您的路径是正确的,但您必须注意 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/

相关文章:

c - 如何按字段之一对结构链接列表进行排序?

二进制转十进制的c程序

c++ - 开始与客户沟通的好方法?

java - 如何将不同的 sql 文件与数据一起用于不同的测试文件?

Oracle dba_data_files 表不存在

python-3.x - pip 和 setuptools 之间的 data_files 差异

c - C 代码的核心转储是什么意思?

c - 程序不工作

ruby - 如何快速对大型数据文件进行切片和切 block ?

c++ - 为什么数据文件的第一行被跳过c++