c - 我如何在 C 中检查 EOF?

标签 c file-io eof

例如,我有一个包含数字行的文本文件

 5  6  3 2 10  4 6 
18 49 40 9 17 40 0

当我读入文件时,它不会停在文件末尾。我的循环读入代码如下 -

while ((fscanf(spFile, "%d", &scores[i][j])) == 1 && spFile != EOF) {
        printf("%d ", scores[i][j]);

        if(j == 8) {
            i++;
            j = 0;
            printf("\n");
        } else {
            j++;
        }
        numOfStudents++;
    }

最大行数是 50(所以一个 50 的数组(必须把它作为数组而不是指针))我有 numOfStudents 来计算行数,当它完成时它说 50 而实际上只有 2 .

谢谢!

最佳答案

fscanf() 将返回 0 或 EOF。

您还可以使用“feof()”函数。

文件指针变量 spFile 将永远等于 EOF。 “EOF”是由 C 运行时管理的状态,它不是文件指针本身。

关于c - 我如何在 C 中检查 EOF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763836/

相关文章:

java - Java 处理的 2GB 文件

python - 将类实例的字符串表示写入文件

c - 当遇到 EOF 字符时,使用 getchar() 从控制台读取字符直到遇到 EOF 字符的循环不会退出

c++ - 不能使用 cin 两次,cin.clear 和 cin.ignore 也不起作用

c - 在 C 中的位域结构中添加额外的位

c++ - 根据位数集计算组合

c - 分段故障核心(已转储)

c - 从文件中读取文本,将行存储在数组中

java - 使用 Apache Commons I/O 将数据附加到文件中

perl - 如何在 Perl 中检查 eof?