CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

feof()的问题。

楼主look01(^-^)2004-12-01 19:28:46 在 C/C++ / C语言 提问

用来测试0字节文件并不是返回TURE,而是返回-1,WHY? 问题点数:0、回复次数:9Top

1 楼sw_man()回复于 2004-12-01 19:41:00 得分 0

我想是说明函数调用失败,文件里根本没有EOF标志,怎么会返回TURE?Top

2 楼xzxsimon(歪歪)回复于 2004-12-01 19:45:04 得分 0

feof()测试文件到达文件尾时返回非零值,否则返回零值。  
  如果定义成signed   int   feof(),如果到达文件尾,或者空文件,返回1,但是由于定义的时符号型,计算结果为-1。  
  我的理解,仅供参考Top

3 楼snow810211(阳光)回复于 2004-12-01 19:52:02 得分 0

看书上说feof一般是对二进制文件操作时候用Top

4 楼look01(^-^)回复于 2004-12-01 19:57:22 得分 0

我测试了非0字节文件,也得不到正确的结果。Top

5 楼yuanyou(元友)回复于 2004-12-01 20:34:47 得分 0

看看FILE结构体的定义也许会找的答案  
  在stdio.h  
  fseek()中定义了  
  #define   SEEK_CUR                 1  
  #define   SEEK_END                 2  
  #define   SEEK_SET                 0  
  也许你会发现这个宏中文件最后是用0表示的.  
  大概如此吧Top

6 楼yuanyou(元友)回复于 2004-12-01 20:36:54 得分 0

错了,这个宏中文件最后是用2表示的Top

7 楼niukuonan(niukuonan)回复于 2004-12-01 20:44:26 得分 0

这个问题我做了测试  
  当你刚刚打开一个文件的时候  
  比如说fp=fopen("in.txt","wb");  
  这时,fp并不指向文件的第一个字节  
  你可以这样  
  先用  
  char   ch;  
  ch=fgetc(fp);//fp指向第一个字节  
  while(!feof(fp))//此时,fp才指向第一个字节  
  {  
  fputc(....);  
  ch=fgetc(fp);  
   
  }  
  或者用  
  fseek(fp,0,0);  
  来使fp指向第一个字节  
   
  你可以看看c的书,上面多数都用的第一种写法  
  Top

8 楼niukuonan(niukuonan)回复于 2004-12-01 20:47:17 得分 0

当你对一个0字节的文件进行feof(fp)时  
  系统成功的得到fp所指文件的指针  
  二进制流不等于0,所以你再怎么测feof()返回都是0Top

9 楼look01(^-^)回复于 2004-12-02 17:00:41 得分 0

to:niukuonan(niukuonan)  
  while(!feof(fp))//此时,fp才指向第一个字节  
  {  
  fputc(....);  
  ch=fgetc(fp);  
  }  
  循环结束,ch的值是-1,而不是文件最后一个字符?老潭书上那个复制文件的例子就会将-1也复制过去  
  Top

相关问题

  • feof(FILE *)是什么意思?
  • 有关feof()的问题
  • 问个关于feof()函数的问题
  • 我的!feof(fp)为什么读不到文件尾?
  • 我好痛苦,在tc下用feof()和EOF均出错。
  • feof(fp)出错,有没有好方法处理?
  • 200分急求关于fread()和feof()的代码 waiting..on...line
  • 200分急求关于fread()和feof()的代码 继续接分
  • 用feof判断二进制文件结尾总是出错
  • TC中的feof函数好象有点问题啊?

关键词

  • 文件
  • feof
  • fp
  • 返回
  • 定义
  • fgetc
  • ch
  • 书
  • 指向第一个
  • define seek

得分解答快速导航

  • 帖主:look01

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo