太乱了,怎么输出不是12345?
#include<stdio.h>main(){ FILE *fp; int i, n, k,f,g;fp=fopen("data.dat", "w+");for(i=1; i<6; i++){ fprintf(fp,"%d ",i);if(i%3==0) fprintf(fp,"\n");}rewind(fp);fscanf(fp, "%d%d%d%d%d%d ", &k, &n,&k,&f,&g); printf("%d %d %d %d %d \n", k, n,k,f,g);fclose(fp);}
参考答案:fprintf(fp,"%d ",i); //注意%d后面有空格
所以data.dat文件应该是
1 2 3 /n
4 5 eof
然后
fscanf(fp, "%d%d%d%d%d%d ", &k, &n,&k,&f,&g);//不过这里只读整形数,空格没有影响,但是&k有两个,后面赋的值把前面的1覆盖了
所以k,n,f,g,的值应该分别是3,2,4,5
printf("%d %d %d %d %d \n", k, n,k,f,g);//最后输出,有空格,结果就应该是
3 2 3 4 5/n