读书人

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

发布时间: 2012-05-22 18:18:54 作者: rapoo

fseek()和feof()的问题。。
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打开的。

[解决办法]
使用fseek时,最后一个参数不要0之类的数字,用SEEK_SET、SEEK_CUR等。
另外这个程序不需要调用fseek,fread读了之后会seek的
[解决办法]
if(feof(fp))
{
fclose(fp);
break;
}

读书人网 >C语言

热点推荐