文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>读文件尾时使用feof()的一些认识

读文件尾时使用feof()的一些认识

时间:2010-10-27  来源:nothing3618

下面一些内容摘录自百度百科: 与EOF的区别
  在stdio.h中可以看到如下定义:
  #define EOF (-1)
  #define _IOEOF 0x0010
  #define feof(_stream) ((_stream)->_flag & _IOEOF)
  int c;
  while(!feof(fp))
  {
  c = fgetc(fp);
  printf("%X\n", c);
  }
  会发现多输出了一个FF,原因就是在读完最后一个字符后,fp->flag仍然没有被置为_IOEOF,因而feof()仍然没有探测到文件结尾。直到再次调用fgetc()执行读操作,feof()才能探测到文件结尾。这样就多输出了一个-1(即FF)。
  正确的写法应该是:
  int c;
  c = fgetc(fp);
  while(!feof(fp))
  {
  printf("%X\n", c);
  c = fgetc(fp);
  }
  feof()可以用EOF代替吗?不可以。fgetc返回-1时,有两种情况:读到文件结尾或是读取错误。因此我们无法确信文件已经结束, 因为可能是读取错误! 这时我们需要feof()。 这样,基本对feof有一定的了解了。
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载