📜  C中的EOF,getc()和feof()(1)

📅  最后修改于: 2023-12-03 15:00:11.428000             🧑  作者: Mango

C中的EOF、getc()和feof()

在 C 语言中,EOF(End Of File)表示文件的结束。当通过文件输入输出操作读到文件的结尾时,函数会返回 EOF。

在文件输入输出操作中,经常使用 getc() 函数来读取文件中的字符。它的语法如下:

int getc(FILE *stream);

该函数从指定的文件流读取下一个字符,并把该字符作为函数的返回值返回。如果到达了文件结尾,则返回 EOF。例如,下面的代码读取文件中的字符,直到到达文件结尾:

#include <stdio.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("input.txt", "r");
    while ((c = getc(fp)) != EOF)
    {
        putchar(c);
    }
    fclose(fp);

    return 0;
}

此外,还可以使用 feof() 函数来判断文件是否已经结束。它的语法如下:

int feof(FILE *stream);

该函数返回一个非零值,如果在读取 stream 时到达了文件结尾,则返回 1,否则返回 0。例如,下面的代码使用 feof() 函数判断文件是否已经结束:

#include <stdio.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("input.txt", "r");
    while (!feof(fp))
    {
        c = getc(fp);
        putchar(c);
    }
    fclose(fp);

    return 0;
}

需要注意的是,feof() 函数并不能判断文件读取是否成功,如果在读取文件时出现了错误,例如无法打开文件,那么 feof() 函数也会返回 0。因此,在使用 feof() 函数时,还需要检查文件是否成功打开,以及读取文件是否发生错误。