fread函数求助!!!

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:00:31
从文件中读取几组数据,并输出.
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为初值!!!!

问题一:文件打开时,文件指针指向文件的开头,每读取一次,指针后移若干个字节,就是sizeof(Node)计算出来的.
问题二;那个n是上面累加起来的,是读取的次数.比如3次.因为你的程序不完整,无从判断.可能是因为n的初值是1吧.那读3次以后,它的值就是4了.而输出是从下标0开始的,共要输出3次,即下标0,1,2<4-1吧.