格式化的读写函数fscanf和fprintf
#include <stdio.h> void main()
{
FILE *fp; int i,k=0,n=0;
fp=fopen("dl.dat","w");
for(i=1;i<4;i++)
fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("dl.dat","r");
fscanf(fp,"%d%d",&k,&n);
printf("%d%d\n",k,n);
fclose(fp);
}
这个运行结果是123 0
for(i=1;i<4;i++)
fprintf(fp,"%d",i);
这句把123存入fp所指文件
fscanf(fp,"%d%d",&k,&n);
为什么不是按顺序输出1 2呢 而是一次性把132都输出来了,那n为什么等于0??
#include<stdio.h>
main()
{
FILE *fp;
int i,k,n;
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",&k,&n);
printf("%d%d\n",k,n);
fclose(fp);
}
这个程序输出的结构是1 2
for(i=1;i<6;i++)
{
fprintf(fp,"%d",i);
if(i%3==0)
fprintf(fp,"\n");
}
这个应该存入12 45
rewind(fp);
fscanf(fp,"%d%d",&k,&n);
为什么在这里不是一次性把12 45输出,然后再输出n=0???
这两个程序有什么不同?
ps:输出结果是正确的,其他的是本人的一些理解,如果有错的地方,还请大家纠正。
[此贴子已经被作者于2017-1-4 13:35编辑过]