你好,我在读取文件时遇到问题,我正在尝试使用 fscanf()
从文件中读取,但我似乎无法解决这个问题。
我尝试逐行读取文件,每次都将字符串放入变量(缓冲区)中,但我无法理解 while 循环应该是什么样子
提前致谢
我想读取的文件是一个 txt 文件,格式如下: 第一行:“1234,abc,etc” 第二行:“2432,fjh,etc” 以及更多类似我希望能够读取的行使用 fscanf 方法以便在每个循环中放入所有行让我的字符串变量中说“1234,abc 等”等等,直到我没有更多的行可以读取
这是我到目前为止收集到的(当然这不是正确的写法):
char* buffer[100];
while (fscanf(FILE *finput,"%s",buffer)!=something)
{
printf("%s",buffer);
}
我希望此代码能够打印我代码中的所有行,如果您能够更正我的错误,我将非常感激
最佳答案
我觉得您应该先阅读其中一些很棒的主题:
Trouble reading a line using fscanf()
Reading file using fscanf() in C
您应该使用 fgets 或其他工具的原因有很多。
引自此place :
fscanf() 是一个面向字段的函数,不适合在强大的通用文本文件阅读器中使用。它有两个主要缺点:
- 您必须事先知道输入文件的确切数据布局,并为每种不同的布局重写函数调用。
- 很难读取包含空格的文本字符串,因为 fscanf() 将空格字符视为字段分隔符。
如果您知道要读取的文件的大小,则可以使用面向 block 的 fread()。
关于c - 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535451/