【发布时间】:2016-03-14 10:51:10
【问题描述】:
如何写入一个包含多个指向文件的字符指针的对象并读回?
class Student {
public:
char* name;
char* age;
int size;
Student(char* _name, char* _age) {
name = _name;
age = _age;
size = 0;
size = strlen(_name) + strlen(_age);
}
};
我有一个 Student 对象的向量数组 (vector<Student*>)。如何将此向量写入文件,然后再读回?
有人可以帮忙吗?我们可以在没有boost::serialization 的帮助下做到这一点吗?
【问题讨论】:
-
你当然可以自己实现序列化。
boost::serialization不是由魔法精灵尘制成的;这只是人们编写的代码。 -
只要你的Student类是一个POD,你就可以遍历向量并将student结构作为二进制流写入文件,然后继续附加到文件中。在阅读时,您可以从文件中读取 sizeof(Student),将其转换为 Student 结构直到 EOF。
-
@Arunmu 不是一个好主意。如您所见,它包含指针。
-
@molbdnilo 当然他会取消引用它:)。他不需要序列化向量,只需序列化数据。
-
@Arunmu 你有没有看过
Student提供的定义?
标签: c++ file vector stl fwrite