fseek()和feof()的问题。。

luofan195 2012-05-17 04:21:01
for(i=0;i<40;i++)
{
fseek(fp,i*sizeof(struct chengji),0);
fread(&b[i],sizeof(struct chengji),1,fp);
if(!feof(fp))
{
fclose(fp);
break;
}
printf("....")
}
定义了一个结构体存放学生信息,用fread读出来到b里。fseek移动指针 。再用feof检测是否到文件末尾。却一直没返回1.循环一直执行。什么原因??求解啊!!

fp=fopen("student.dat","r"); 用r打开的。
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luofan195 2012-05-17
  • 打赏
  • 举报
回复
不好意思。。我输入的时候出现了写问题。。所以错了。。感谢
luofan195 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

if(feof(fp))
{
fclose(fp);
break;
}
[/Quote]
if(feof(fp))这样写 循环一直没有停啊。。。循环了四十次。但是文件里只存放了两个结构体的数据
luofan195 2012-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

使用fseek时,最后一个参数不要0之类的数字,用SEEK_SET、SEEK_CUR等。
另外这个程序不需要调用fseek,fread读了之后会seek的
[/Quote]
那么 取消fseek ,fread里的count 是否要变 ,假设有40个学生。是否要变成40?
qq120848369 2012-05-17
  • 打赏
  • 举报
回复
if(feof(fp))
{
fclose(fp);
break;
}
ouyh12345 2012-05-17
  • 打赏
  • 举报
回复
使用fseek时,最后一个参数不要0之类的数字,用SEEK_SET、SEEK_CUR等。
另外这个程序不需要调用fseek,fread读了之后会seek的

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧