小太阳mp3下载:为什么输出结果不对
来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 10:38:43
main()
{
int x,y,z;
FILE *fp;
for(x = 0;x < 50;x++)
for(y = 0;y< 50;y++)
for(z = 0;z <= 50;z++)
{
if(x * x + y * y + z *z == 2000)
{
if( (fp = fopen("f3","w")) == NULL)
{
printf("error");
exit(0);
}
fwrite(&x,sizeof(int),1,fp);
fwrite(&y,sizeof(int),1,fp);
fwrite(&z,2*sizeof(int),1,fp);
}
}
}
这样open文件 fp = fopen("f3","w")
应当用 fprintf(fp,"%d %d %d ",x,y,z); 的方法存为ASCII文件.
若用二进制存放,
open文件 fp = fopen("f3","wb")
下次读数据要用 "rb" open
fwrite(&z,2*sizeof(int),1,fp);
应当用 fwrite(&z,sizeof(int),1,fp); 不乘2
fwrite(&x,sizeof(int),1,fp);
fwrite(&y,sizeof(int),1,fp);
fwrite(&z,2*sizeof(int),1,fp);
输入出的内容并不是按十进制显示的,而是写到文件的数值按照字符的形式给存起来了,并不是你写的是整数100在文件里就存有整数100,它是按照100的ASCII形式来存储的。不用担心文件里存的字符当你再读回去的时候数值是不会变的。另外想要得几组数据的话打开方式应该用追加的-fopen("f3","a")
输出的结果: ',' 对应 44 ''对应 8
而44*44+8*8+0*0=2000(这只是其的一组数据)
, , ( ( ( , , , , , ( ( ( ( ( ( ( ( ( ( ( ( ( , ,
晕,那国的文字哦
C语言忘记的差不多了哦