版主帮忙看看。这个程序哪里定义错误
#include<stdio.h>struct student
{char name[20];
int num;
float score;
};
struct student stu[2]={{"xiaoli",01,89},{"xiaozhng",02,88}};
void save()
{FILE *fp;
int i;
fp=fopen("C:\\1.txt","wb");
for(i=0;i<2;i++)
{fwrite(&stu[i],sizeof(struct student),1,fp);
}
fclose(fp);
}
void main()
{save();
}
输出到1.txt文件中的结果总是乱码,只有名字也就是字母可以正确输出
[[it] 本帖最后由 saysaysay 于 2008-6-28 12:09 编辑 [/it]]
----------------解决方案--------------------------------------------------------
你用fwrite写入的是二进制数据,不是ASCII码数据,当然是乱码了。
你可以用fprintf函数来把ASCII码数据写入文件。
其实是乱码也有他的好处,你想啊,如果你做一个文件,都是明码那别人什么都知道了。为了文件的保密性,一般都用fwrite写入乱码来防止他人看到文件内容。
其实乱码数据比明码数据占用的磁盘空间更少
----------------解决方案--------------------------------------------------------
char[20] 没有定义字符串的名字
float score应该是一个数组的
float score【2】
----------------解决方案--------------------------------------------------------
经测试,你的原代码有4个错误
----------------解决方案--------------------------------------------------------
不好意思,发帖的时候没有认真看清楚就发了,写快了
----------------解决方案--------------------------------------------------------
谢谢各位的回答,终于是有人回答了
----------------解决方案--------------------------------------------------------