CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

我的!feof(fp)为什么读不到文件尾?

楼主bleempan(跟我青梅竹马的原来是我的电脑...)2001-05-30 23:29:00 在 C/C++ / C语言 提问

void   load(void)  
  {  
  FILE   *fp;  
   
  if((fp=fopen("abc,txt","rb+"))==NULL)   {  
  printf("cannot   open   file\n");  
  getch();  
  return;  
  }  
   
  while(head)   {  
  p1=head->next;  
  free(head);  
  head=p1;  
  }  
   
  head=p1=NULL;  
   
  while(!feof(fp))   {  
  p1=(struct   student   *)malloc(sizeof(struct   student   ));  
  if(!p1)   {  
  printf("out   of   memery\n");  
  return;  
  }  
   
  if(fread(p1,sizeof(struct   student),1,fp)!=1)   {  
  printf("file   read   error\n");  
  free(p1);  
  getch();  
  return;  
  }  
   
  p2->next=p1;  
  p2=p1;  
  if(n==0)    
  head=p1;  
  }  
  p2->next=NULL;  
  printf("\nload   successful\n");  
  getch();  
  fclose(fp);  
  }  
   
  假设我的文件里有二项数据,循环二次之后fp应该是到了文件尾,可就是退不出循环。这是怎么回事?  
  我把fread条件判断去掉,程序循环三次后退出了,为什么会多读了一项?应该怎样改才行。 问题点数:50、回复次数:2Top

1 楼blre(真的无所谓)回复于 2001-05-31 00:10:00 得分 25

第三次的结果是有效的吗?  
  也可以使用fread的返回值判断Top

2 楼liuto(B34)回复于 2001-05-31 00:18:00 得分 25

应该是三次,第三次其实没读到,因为前两次读完正好读了所有的数据,但feof只有到你读了超出文件的数据时才会变成true.  
  前一个问题你没说清楚,你跟踪了?怎么知道没退出?到了peintf("file   read   error")一句了么?Top

相关问题

  • 如何判断读到文件尾了????
  • 请教如何从文件尾读入数据
  • CStdioFile读取文件,如何判断是否读取到文件尾?
  • 如何逐行读取文件内容?直到文件尾部!《急,在线等待给分》
  • 紧急!!!为什么在窗口load的时候读一个空文本文件会报‘输入超出文件尾’呢
  • VFP问题,SKIP----已到文件尾
  • 求教,关于文件尾的判断
  • 关于文件尾的问题?
  • 使用fscanf或者fgets读取文件内容的时候,最后总是要多操作一次文件指针才能到达文件尾,大家是怎样处理 这个最后多出来的一次操作的??
  • ifstream::eof(),可以测试是否到达文件尾吗?

关键词

  • 数据
  • null
  • p1
  • p2
  • feof
  • fp
  • fread
  • getch
  • head
  • struct student

得分解答快速导航

  • 帖主:bleempan
  • blre
  • liuto

相关链接

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

广告也精彩

反馈

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