在C++中如何将含有string类型成员的对象存储到文件中去

在C++中要将一个对象存储到文件中去,可是这个对象(类)中包含有string类型的成员,如果直接存储读取的时候运行会不正常,该怎么破... 在C++中要将一个对象存储到文件中去,可是这个对象(类)中包含有string类型的成员,如果直接存储读取的时候运行会不正常,该怎么破 展开
 我来答
abcd1236386
2013-09-01 · TA获得超过774个赞
知道小有建树答主
回答量:539
采纳率:0%
帮助的人:529万
展开全部
string内存是动态申请的内存,所以要存内容,就需要将string的内容全部存进去,然后读的时候才能不出错。
或者你就讲string的内容全部转成字符数组,然后将字符数组的整个内存块写到文件中。
追问
将string的内容全部存进去?这个是说需要将各成员的数据单独存储而不是直接存储一个对象吗?
还有一个问题就是用字符数组时构造函数初始化列表怎么写?
class Person{
char name[40]; //string name;

public:
Person(){}

};
追答
带指针成员的对象,你如果直接存一个对象,只是吧指针的值存起来了,而不是指针指向的内容,而这个值在你下次读取时候没有一点用处。因为内存地址什么的都变了,所以必须手动的吧内容存到文件中。
初始化列表你要写什么?我没明白,不需要写呀。
只是用字符数组没有string 方便,你没法直接赋值 name=“hello”;这样是不行的,你不许用到一些库函数 strngcpy(name,"hello")类似于这样的。
完美军事评论员
2013-09-01
知道答主
回答量:30
采纳率:0%
帮助的人:23.5万
展开全部
你是北邮的吧
追问
??不是啊,跟这个问题有关系?
追答
没有,只是问这些问题的很多都是北邮,你的问题,可以不把整个类存进去·,把类的数据分别存入文件,再分别读出,好吧,比较麻烦,但是可以凑合着用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式