struct Authinfo
{
char name[100]; //不能定义为string name 不然程序会奔溃
// 原因:string(包括任何你不可能知道结构的对象——标准里没规定string的具体实现)是不能直接这样保存到文件的。VC里你这么干写入文件的是string里指向真正字符串内容的指针,相当于间接把这个本来不能复制的指针复制给了另一个string,到只两个string析构时发生了重复释放。
int age;
};
Authinfo authinfo;
ZeroMemory(&authinfo,sizeof(authinfo));
string strname="abbccddeeffgg";
memcpy(authinfo.name,strname.c_str(),strname.length());
authinfo.age=99;
char * Filename="D:\点云\数据\测试Cache\R001A6E34\C00359EC0\dddd1.dat";
FILE *fp=fopen(Filename,"ab+");
if(!fp)
{
return;
}
fwrite(&authinfo,sizeof(authinfo),1,fp);
fclose(fp);
fp=fopen(Filename,"ab+");
Authinfo authinfo2;
ZeroMemory(&authinfo2,sizeof(authinfo2));
fread(&authinfo2,sizeof(authinfo2),1,fp);
string name=authinfo2.name;
int age=authinfo2.age;