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



我写了这段代码,从输入文件中读取并显示数字:

#include<stdio.h>
int main()
{
    int i;
    FILE * f;
    f=fopen("inputA.txt","r");
    while (!feof(f)){
        fscanf(f, "%i", &i);
        printf("%it", i);
    }
    printf("n");
}

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

while( !feof(x) )

不正确。

您必须检查fscanf()的返回值,并且只有在调用成功时才打印i。如果fscanf()返回值指示错误,检查feof()并中断循环。

最新更新