在C++中如何将含有string类型成员的对象存储到文件中去
在C++中要将一个对象存储到文件中去,可是这个对象(类)中包含有string类型的成员,如果直接存储读取的时候运行会不正常,该怎么破...
在C++中要将一个对象存储到文件中去,可是这个对象(类)中包含有string类型的成员,如果直接存储读取的时候运行会不正常,该怎么破
展开
2个回答
展开全部
string内存是动态申请的内存,所以要存内容,就需要将string的内容全部存进去,然后读的时候才能不出错。
或者你就讲string的内容全部转成字符数组,然后将字符数组的整个内存块写到文件中。
或者你就讲string的内容全部转成字符数组,然后将字符数组的整个内存块写到文件中。
追问
将string的内容全部存进去?这个是说需要将各成员的数据单独存储而不是直接存储一个对象吗?
还有一个问题就是用字符数组时构造函数初始化列表怎么写?
class Person{
char name[40]; //string name;
public:
Person(){}
};
追答
带指针成员的对象,你如果直接存一个对象,只是吧指针的值存起来了,而不是指针指向的内容,而这个值在你下次读取时候没有一点用处。因为内存地址什么的都变了,所以必须手动的吧内容存到文件中。
初始化列表你要写什么?我没明白,不需要写呀。
只是用字符数组没有string 方便,你没法直接赋值 name=“hello”;这样是不行的,你不许用到一些库函数 strngcpy(name,"hello")类似于这样的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询