📅  最后修改于: 2023-12-03 15:00:11.428000             🧑  作者: Mango
在 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()
函数时,还需要检查文件是否成功打开,以及读取文件是否发生错误。