我的程序如下:#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时老出现乱码 咋回事喃?各位帮帮忙,俺第一次上百度提问,还没有积分 小女子先谢过了
在MSDN中fwrite的解释是Writes data to a stream.你写入的是int型的数组,以二进制存放在文件中,当你用文本文档打开的时候是当作字符串识别的,看到的就成了乱码。
若你想看到写入的数字,可用fprintf,这样是以字符串写入
若你想看到写入的数字,可用fprintf,这样是以字符串写入
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-04-14
你用什么工具打开你的文件的?
因为你写入的是二进制数据,文本编辑器打开是看到乱码。除非你用
fprintf(fp, "%d", a);
打开文件时使用"wt"属性。
这样写入的是文本值,可以看到值是多少。本回答被网友采纳
因为你写入的是二进制数据,文本编辑器打开是看到乱码。除非你用
fprintf(fp, "%d", a);
打开文件时使用"wt"属性。
这样写入的是文本值,可以看到值是多少。本回答被网友采纳