下面程序段的输出结果是(3.141500,12141500)。
求每一步解释
FILE *fp;
double x=3.1415;
int y=12;
fp=fopen("test.txt","w");
fprintf(fp,"%f",x);
rewind(fp);
fprintf(fp,"%d",y);
fclose(fp);
fp=fopen("test.txt","r");
fscanf(fp,"%d",&y);
printf("%f,%d",x,y);
fclose(fp);
FILE *fp;
double x=3.1415;
int y=12;
fp=fopen("test.txt","w");
fprintf(fp,"%f",x);
rewind(fp);
fprintf(fp,"%d",y);
fclose(fp);
fp=fopen("test.txt","r");
fscanf(fp,"%d",&y);
printf("%f,%d",x,y);
由于在第 3 步中将 double 类型变量 x 的值覆盖掉了,所以输出结果中 x 的值为 3.141500 而不是 3.1415。而 y 的值则是在第 2 步中写入的 12,而在第 3 步中被覆盖成了第 3 步中写入的 12141500。