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

时间:2014-06-22 10:07:34

标签: c file scanf

我正在尝试以下列格式阅读文件 你好

{

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

}

我只想使用文件中给出的整数,并且我正在使用以下代码

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

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

1 个答案:

答案 0 :(得分:0)

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