c语言问题
#include"stdio.h"main()
{
FILE*fp; /*定义文件指针*/
float sc1,sc2,sc3;
int i;
if((fp=fopen("cj.dat","w"))==NULL)
{
printf("\nCan not open file cj.dat.\n");
exit(1);
}
for(i=0;i<5;i++)
{
printf("please input No.%d there scores:",i+1);
scanf("%d,%d,%d",&sc1,&sc2,&sc3);
fprintf(fp,"%d,%d,%d\n",sc1,sc2,sc3);
}
fclose(fp);
}
这个代码是向cj.dat文件里面写入成绩记录运行后不管输入什么用记事本打开cj.dat文件都是
你用scanf接受的收据应该在缓冲区中,而你用fprintf输出的却是文件缓冲区,两个缓冲区不是一样的,所以你用fprintf写入文件的是内存中没用的数据,你自己写入的数据其实在数据缓冲区中 ,,,,不知道我回答的是不是,只是我自己的想法,我没去验证 ypyangpong 发表于 2013-10-13 19:27 static/image/common/back.gif
你用scanf接受的收据应该在缓冲区中,而你用fprintf输出的却是文件缓冲区,两个缓冲区不是一样的,所以你 ...
不是你说的那样的因为我前面定义的是 float sc1,sc2,sc3;后面输出和输入的都是%d 类型不一致导致的 945402287 发表于 2013-10-13 22:28 static/image/common/back.gif
不是你说的那样的因为我前面定义的是 float sc1,sc2,sc3;后面输出和输入的都是%d 类型不一致导致的 ...
哦谢谢,。。。。。
页:
[1]