c - 如何读取文件直到倒数第二行

标签 c file scanf

我正在尝试读取以下格式给出的文件 你好

{

    1--2
    2--3
    3--4

}

我只想使用文件中给出的整数,为此我使用以下代码

while(fscanf(fp, "%d--%d", &a, &b) != EOF)
    {   // do something here}

问题是这不起作用,因为它在读取第一行后进入无限循环,如果我删除第一行,它会在读取的最后一行进入无限循环 }
那么,如何才能以正确的方式做到这一点呢?

最佳答案

如果一切都失败了,RTFM: fscanf:“此函数返回成功匹配和分配的输入项的数量,该数量可能少于提供的数量,如果早期匹配失败,甚至为零。” 同时,EOF=-1,尽管在某些平台上的某些 stdio.h 头文件中它可能等于零。 您可以检查 fscanf 是否返回 0 或使用 feof(fp) 检查是否已到达文件末尾。

关于c - 如何读取文件直到倒数第二行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24350184/

相关文章:

c - 如何从标准输入打印行?

c - 如何通过Scanf将二次方程作为输入?

c - 最佳常量 c 约定

c - How to solve is 0 bytes after a block of size 6 alloc'd 解决办法

CUDA 没有按预期工作?

ios - 在图像文件头上添加注释

Python 向 "1"= ="1"返回 false。任何想法为什么?

c++ - 在 C++ 程序运行时加载文件

c - 为什么 scanf() 在填充数组时不生成内存破坏错误。

c - 如何更改全局数组的元素以供所有线程查看