VS2010将数据输出到电脑中 为什么是乱码呀?
这是输出部分的程序
void sp(void)//存颗粒场p1.dat
{
int i;
pn=n+1; con=0;
strcpy(fn,route); strcat(fn,"p"
for(i=6;i>=0;i--)
{
in=(int)(pn/pow(10.0,i));
if(in>0){con=1;ch[0]=(char)(in+48);strcat(fn,ch);pn=pn-(int)(in*pow(10.0,i));}
else if(con==1)strcat(fn,"0"//写0占位
}
strcat(fn,".dat"
if((fp=fopen(fn,"wb")==NULL){printf("file open erroe:%s\n",fn);exit(0);}
fwrite(&nu,sizeof(int),1,fp);//颗粒数
for(i=0;i<nu;i++)
{
fwrite(&pk,sizeof(int),1,fp);
fwrite(&px,sizeof(float),1,fp);
fwrite(&py,sizeof(float),1,fp);
fwrite(&pz,sizeof(float),1,fp);
fprintf();
}
fclose(fp);
}
10.PNG 返回小木虫查看更多
void sp(void)//存颗粒场p1.dat
{
int i;
pn=n+1; con=0;
strcpy(fn,route); strcat(fn,"p";
for(i=6;i>=0;i--)
{
in=(int)(pn/pow(10.0,i));
if(in>0){con=1;ch[0]=(char)(in+48);strcat(fn,ch);pn=pn-(int)(in*pow(10.0,i));}
else if(con==1)strcat(fn,"0";//写0占位
}
strcat(fn,".dat";
if((fp=fopen(fn,"wb"==NULL){printf("file open erroe:%s\n",fn);exit(0);}
fwrite(&nu,sizeof(int),1,fp);//颗粒数
for(i=0;i<nu;i++)
{
fwrite(&pk,sizeof(int),1,fp);
fwrite(&px,sizeof(float),1,fp);
fwrite(&py,sizeof(float),1,fp);
fwrite(&pz,sizeof(float),1,fp);
}
fclose(fp);
},
你写的是二进制的嘛wb。兄弟。二进制当然是你不可理解的啊(显示成字符没办法看)。如若,你就是个机器了。 你用二进制写进去,如果读出来的那些数字是对的就行。
可是我把wb改成w 输出的还是乱码呀
你要写成啥?你想在文件中看到啥?想以文本保存就要把变量格式化成字符串,再将字符串写到文件。但是这样的话,如果你想再用这些数据,就要换换读法……
我后来用fprintf输出了 就不是乱码了 谢谢你