对象的序列化与反序列化的文件读写

ilywhax1 2011-12-30 10:20:10
有个对象如下
class student{
private:
string name;
string address;
......

}

该对象怎么进行文件的读写,写入文本文件。用vc++编译器。由于string是个指针,网上找的相关资料都看不大明白,最后能给个小例子。
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
对象 2011-12-31
  • 打赏
  • 举报
回复
没看懂LZ问什么,如果是问文件读写的话,按你要求,只需要重载<<和>>操作符即可,把操作符设置成类的友元函数,即可操作类的数据成员。

如果是问正向反向读写的问题,可以考虑用容器临时存储数据,然后用rbegin和rend反向迭代。
ilywhax1 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keiy 的回复:]
写个思路吧(不考虑重载<<及>>操作符)
写文件
ofstream fout;
student s;
fout << s.name << endl << s.address << endl << ...
读文件
istream fin;
fin >> s.name >> s.address >> ...
当然,如果你的数据中含有空格的话

getl……
[/Quote]
能否给个具体的例子研究下?我之前用write跟read读写文件的时候,由于有个string类型的,string又相当于指针所以sizeof(student)的时候长度不对,所以读不出来。
柯本 2011-12-30
  • 打赏
  • 举报
回复
写个思路吧(不考虑重载<<及>>操作符)
写文件
ofstream fout;
student s;
fout << s.name << endl << s.address << endl << ...
读文件
istream fin;
fin >> s.name >> s.address >> ...
当然,如果你的数据中含有空格的话

getline(fin,s.name);
getline(fin,s.address);
...




64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧