fread函数求助!!!

从文件中读取几组数据,并输出.for(i=0;i<M;i++){if(feof(fp))break;fread(&f[i],sizeof(Node),1,fp);n=n+... 从文件中读取几组数据,并输出.
for(i=0;i<M;i++)
{if(feof(fp)) break;
fread(&f[i],sizeof(Node),1,fp);
n=n+1;
}/*能不能说一下每次执行fread语句时,文件指针运行到哪里*/
fclose(fp);
for(j=0;j<n-1;j++)/*为何这里要j<n-1,而不是j<n*/
{
printf("\nNO:%d",f[j].num);
printf("\ncity:%s",f[j].city);

printf("\n---------------------------------------");

}
谢谢!!!
其中n=0为初值!!!!
展开
 我来答
红山人2008
2009-02-04 · TA获得超过4679个赞
知道大有可为答主
回答量:5699
采纳率:0%
帮助的人:3942万
展开全部
问题一:文件打开时,文件指针指向文件的开头,每读取一次,指针后移若干个字节,就是sizeof(Node)计算出来的.
问题二;那个n是上面累加起来的,是读取的次数.比如3次.因为你的程序不完整,无从判断.可能是因为n的初值是1吧.那读3次以后,它的值就是4了.而输出是从下标0开始的,共要输出3次,即下标0,1,2<4-1吧.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式