自定义一结构
struct student
{
char name[3];
int score;
};
struct student stud1 = {...};void* buf;
CFile f;
f.open(...);
buf = &stud1;
f.Write(buf,7);
f.Close();
不知,这样保存文件行不行?得到的文件内容与期望的有差别。如果这样写:void* buf;
CFile f;
f.open(...);
buf = stud1.name;
f.Write(buf,3);
buf = &stud1.score;
f.Write(buf,4);
f.Close();
就没事了!为什么会有这样的结果呢?

解决方案 »

  1.   

    把你的name的大小改变一下,再试试
      

  2.   

    为什么要改大小啊?
    是不是如果name只占一个byte,就肯定不行了?
      

  3.   

    因为它是按照字符进行输出的,比如stude1={"aa",100};前两位能正确的输出,后五位为一个零字符和一个整形,编译器无法识别所以为乱码。如果将结构体的数据调换过来,这么输出的话,结果是d,aa。自动将整形100转换为字符d,而aa正常输出