21xrx.com
2025-03-27 11:51:31 Thursday
文章检索 我的文章 写文章
C语言中如何判断读取文件是否到达末尾
2023-06-15 20:25:09 深夜i     28     0
C语言 文件末尾 feof函数 fgetc函数 fread函数

在使用C语言读取文件时,经常需要判断是否已经到达了文件的末尾。这是一个非常重要的问题,因为如果读取文件时没有正确判断是否到达了文件末尾,可能会导致程序崩溃或者读取无效的数据。那么,在C语言中如何判断是否到达了文件末尾呢?

下面就是几种判断文件末尾的方法:

1.使用feof函数

feof函数可以用来判断文件指针是否已经达到了文件末尾。代码示例如下:

FILE *fp;
int ch;
fp = fopen("file.txt", "r");
while(!feof(fp))
{
  ch = fgetc(fp);
  printf("%c", ch);
}
fclose(fp);

其中,feof函数的返回值为非零值表示已经到达了文件末尾,否则返回0。

2.使用fgetc函数

fgetc函数可以用来读取文件中的一个字符,如果读取到文件末尾,则返回EOF。代码示例如下:

FILE *fp;
int ch;
fp = fopen("file.txt", "r");
while((ch = fgetc(fp)) != EOF)
{
  printf("%c", ch);
}
fclose(fp);

其中,EOF为C语言中定义的常量,表示已经到达了文件末尾。

3.使用fread函数

fread函数可以用来读取文件中的一段数据,如果读取到文件末尾,则返回小于要求读取的字节数的值。代码示例如下:

FILE *fp;
char buf[1024];
int nread;
fp = fopen("file.txt", "r");
while((nread = fread(buf, 1, sizeof(buf), fp)) > 0)
{
  printf("%s", buf);
}
fclose(fp);

其中,fread函数的返回值为实际读取到的字节数,如果为0则表示已经到达了文件末尾。

  
  

评论区