struct文件写入问题
#include <stdio.h>
#include <stdlib.h>
struct student
{
int num;
char name[10];
int tel;
int birth;
int grades;
}people[10];
int save ()
{
FILE*fp;
int i;
fp=fopen("d:\\information.txt","w+");
for(i=0;i<10;i++)
{
fwrite(&people[i],sizeof(struct student),1,fp);
}
fclose(fp);
return 0;
}
int main ()
{
int i;
for(i=0;i<10;i++)
scanf("%d%s%d%d%d",&people[i].num,&people[i].name,&people[i].tel,&people[i].birth,&people[i].grades);
save();
system("pause");
return 0;
}
为什么我写进去之后除了字母都是乱码啊
[解决办法]
二进制文件用文本打开就是乱码
[解决办法]
使用二进制文件写。如果你使用文本查看的话出现乱码也别惊慌,请使用二进制文件方式读出来,在程序里查看。
- C/C++ code
int save (){ FILE*fp; int i; fp=fopen("d:\\information.txt","wb+"); for(i=0;i<10;i++) { fwrite(&people[i],sizeof(struct student),1,fp); } fclose(fp); return 0;}
[解决办法]
fwrite();是以二进位位方式写入文件
你读出来试试,应该可以读不出来的