C++要把对象写入文件,可是对象里面有string怎么办呢?
string并不会真把内容写进去,只是写进去地址
[解决办法]
1、写的时候,string的内容可以用c_str函数取得;
2、读的时候,先读到一个char[]的缓冲,然后再转换为string类型即可。
[解决办法]
建议直接控制string的读写,比如:
1、写的时候,char* str = new_student.name.c_str(),然后先写入str的长度,然后再写入str的内容;
2、读的时候,char* str,先读取长度后给str动态分配空间,然后再读入内容到str中,再将str复制给new_student.name。
[解决办法]
读的时候
string str;
freopen("xx.txt","r",stdin); //将stdin指针指向xx.txt
cin >> str;
fclose(stdin); //关闭文件
freopen("CON","r",stdin); //重新将stdin指针指向控制台
string str;
freopen("xx.txt","w",stdout);
cout << str << endl;
fclose(str);
freopen("CON","w",stdout);