【C语言】文件操作揭秘:C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】-三、文件读取结束的判定

文件读取结束可以通过feof函数进行判定。feof函数用于检测文件流上的结束标志。当文件末尾已经读取,feof函数返回非零值;否则返回0。

文件读取结束的原因可能有:

1.文件遇到末尾

2.文件发生错误

#include<stdio.h>

int main()
{
    FILE* pf = fopen("text.txt", "r");
    if (pf == NULL)
    {
        perror("fopen");
        return 1;
    }

    int ch;
    while ((ch = fgetc(pf)) != EOF)
    {
        // 处理读取的字符
        if (feof(pf))
        {
            printf("文件读取结束\n");
        }
        else
        {
            printf("文件读取出错\n");
        }
    }
    fclose(pf);
    pf = NULL;
    return 0;
}

 所以在文件读取过程中,不能用feof函数的返回值直接来判断文件的是否结束。feof 的作用是:当文件读取结束的时候,判断是读取结束的原因是否是:遇到文件末尾结束

1.    文本文件读取是否结束,判断返回值是否为EOF(fgetc ),或者NULL(fgets )

例如:
•       fgetc 判断是否为  EOF .
•       fgets 判断返回值是否为NULL .
2.    二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如:
•    fread判断返回值是否小于实际要读的个数。

上一篇:如何在Mac中删除照片?这里有详细步骤


下一篇:鸿蒙Harmony应用开发—ArkTS-高级组件:@ohos.arkui.advanced.ComposeListItem(列表)