求解答,关于文件的操作问题
#include<stdio.h>#include<stdlib.h>
int main(){
FILE *fp;
int i,a,b;
i=1;
fp=fopen("g://intfile.txt","w");//以打开方式创建一个文件
while(i<=10){
a=rand();
fprintf(fp,"%3d ",a);
i++;
}
fclose(fp);
fp=fopen("g://intfile.txt","r");//fp重新指向文件的开始
while(!feof(fp)){
fscanf(fp,"%d",&a);//从文件中依次读取数据,赋给a;
printf("%3d ",a);//输出a在屏幕上 (1?)
}
printf("\n");
fclose(fp);
fp=fopen("g://intfile.txt","rb");
i=5;
while(i<=10){
printf("%5d",fseek(fp,5*sizeof(int),0)); //(2?)
i+=5;
}
return 0;
}
存在的问题的:1.编译运行没有问题,在建立的文件中可输出10个数,但在屏幕上却打印了11个数,最后的数重复打印了一次,这是为什么?
2.在fseek定位函数中,怎么读出的数是0?
3.如果将.txt该为.dat,文件怎么无法打开了?
请高手们赐教。