c - 从文件中读取

标签 c file-io

你好,我在读取文件时遇到问题,我正在尝试使用 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

fscanf multiple lines [c++]

您应该使用 fgets 或其他工具的原因有很多。

引自此place :

fscanf() 是一个面向字段的函数,不适合在强大的通用文本文件阅读器中使用。它有两个主要缺点:

  • 您必须事先知道输入文件的确切数据布局,并为每种不同的布局重写函数调用。
  • 很难读取包含空格的文本字符串,因为 fscanf() 将空格字符视为字段分隔符。

如果您知道要读取的文件的大小,则可以使用面向 block 的 fread()。

关于c - 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535451/

相关文章:

c - 为什么要对 ShowWindow() 进行初始调用?

c - C 中空格等于 '\0' 吗?我怎样才能避免混淆它们?

java - 如何在 Java 中读取 Excel 单元格中的字母数字值?

ruby-on-rails - 通过单击按钮完成文件选择时如何测试文件字段?

java - 合并两个文件而不创建另一个文件

iphone - 将 16 位颜色转换为 32 位

c - C 中可变参数宏的问题

c - 32位x86代码是否需要专门为共享库文件进行PIC编译?

java - Java中的内存泄漏

php - 如何从 PHP 保证指定的文件是 BSD/Linux 上的设备?