在C语言中,fscanf读取最后一个数字两次

时间:2014-10-16 04:43:46

标签: c

我已编写此代码以从输入文件中读取并显示数字:

#include<stdio.h>

int main()
{

    int i;
    FILE * f;
    f=fopen("inputA.txt","r");

    while (!feof(f)){
        fscanf(f, "%i", &i);
        printf("%i\t", i);
    }
    printf("\n");

}

输出显示最后一次数字两次。我想这是feof的问题,但我不知道如何解决它。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

while( !feof(x) )

不正确。

如果调用成功,您必须检查fscanf()的返回值并仅打印i。如果fscanf()返回值表示错误,那么然后检查feof()并从循环中断。