c语言 fwrite出现的乱码

我的程序如下:#include<stdio.h>voidcreat(inta[10][10],intn){inti,j;for(i=1;i<=n;i++){for(j=1... 我的程序如下:#include<stdio.h>
void creat(int a[10][10],int n)
{
int i,j;

for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
a[i-1][j-1]=1+4*(i-1)+2*(j-1);
}
for(i=0;i<=n-1;i++)
{ printf("\n");
for(j=0;j<=i;j++)
printf("%4d",a[i][j]);
}
}
void main()
{ int m;
int a[10][10];
scanf("%d",&m);
creat(a,m);
FILE *fp=fopen("d:\\test3-2.dat","w+");
fwrite(a,sizeof(int),1,fp);
fclose(fp);
}
编译运行都是正确的 可打开test3-2时老出现乱码 咋回事喃?各位帮帮忙,俺第一次上百度提问,还没有积分 小女子先谢过了
展开
 我来答
匿名用户
2009-04-18
展开全部
在MSDN中fwrite的解释是Writes data to a stream.你写入的是int型的数组,以二进制存放在文件中,当你用文本文档打开的时候是当作字符串识别的,看到的就成了乱码。

若你想看到写入的数字,可用fprintf,这样是以字符串写入
e_zhangdan
2009-04-14 · TA获得超过597个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:176万
展开全部
你用什么工具打开你的文件的?
因为你写入的是二进制数据,文本编辑器打开是看到乱码。除非你用
fprintf(fp, "%d", a);
打开文件时使用"wt"属性。
这样写入的是文本值,可以看到值是多少。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式