程序一:
#include
main()
{
FILE fp;
int i,a[6]={1,2,3,4,5,6},k;
fp=fopen("data.dat","w+");
for(i=0;i<6;i++)
{
fseek(fp,0L,0);
_ _ fprintf(fp,"%d\n",a[i]);__
}
rewind(fp);
_ fscanf(fp,"%d",&k);_
fclose(fp);
printf("%d\n",k);
}
/
程序运行结果:
6
/
程序二:
#include
main()
{
FILE *fp;
int i,a[6]={1,2,3,4,5,6},k;
fp=fopen("data.dat","w+");
fprintf(fp,"%d\n",a[0]);
for(i=1;i<6;i++)
{
rewind(fp);
fprintf(fp,"%d\n",a[i]);
}
rewind(fp);
fscanf(fp,"%d",&k);
fclose(fp);
printf("%d\n",k);
}
/
程序运行结果:
6
*/
=====疑问1: fseek(fp,0L,0);和rewind(fp);有什么区别吗?
疑问2:参考答案说程序一退出循环后,文件fp中的数据为:654321;而文件二退出循环后,文件fp中的数据只保留了6??为什么呢?
疑问3:如何打印出退出循环后,文件fp中的数据呢? printf("%d\n",fp);可以吗?但运行程序貌似结果不对