把结构体存入文本中出现乱码
char buf[200];
gets(buf);
if(fwrite(buf, 1, strlen(buf)+1, fp)!=0)
printf("信息成功写入\n");
用gets接收的字符串 写入后不会出现乱码
下面是用结构体写入的代码
struct student NewStudent;
scanf("%s",NewStudent.number);
scanf("%s",NewStudent.name);
scanf("%s",NewStudent.age);
scanf("%s",NewStudent.sex);
scanf("%s",NewStudent.birth);
canf("%s",NewStudent.address);
scanf("%s",NewStudent.phone);
scanf("%s",NewStudent.email);
if(fwrite(&NewStudent, sizeof(NewStudent), 1,fp)!=0)
printf("信息成功写入\n");
这样把结构体写入后就是乱码 搞不懂为什么,在linux虚拟机中测试的
struct fp 虚拟机
[解决办法]
结构体定义后初始化一下
[解决办法]
结构体的那些项全是字符数组型的?
如果全是字符数组型的,那么字符串会有长有短,短的字符串,会留下没有使用的字节,是这些没有使用的字节导致的乱码。