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

标签 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的问题但我不知道如何解决。有什么想法吗?

最佳答案

while( !feof(x) )

不正确。

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

关于c - 在 C 语言中,fscanf 读取最后一个数字两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402331/

相关文章:

c - 我应该修改什么以仅预处理整个项目中的所有 C 文件?

c - 用于 i2c 设备的 linux 驱动程序——读取两个字节

C:未初始化的局部变量具有意外的值

c - sprintf 与 Format 的用法

c - 缓冲区溢出(返回地址)

c - 穿越一棵树

输入时两个整数之间的逗号

c - 读取BMP文件并旋转

将 C 变量转换为 JSON 格式

Mac 终端上的 CTRL-D 输出一个 D 字符