首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++要把对象写入文件,可是对象里面有string怎么处理呢

2013-01-04 
C++要把对象写入文件,可是对象里面有string怎么办呢?string并不会真把内容写进去,只是写进去地址[解决办法

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);

用iofstream也是一样的用法。

热点排行