【发布时间】:2018-06-06 20:21:50
【问题描述】:
我正在尝试制作一个简单的“人”对象向量,可以将其保存然后从文件加载到对象向量。我做了一个在一些教程中找到的函数,它返回类的所有内容,但我不知道现在该怎么做,把它放到一个文件中。我应该使用 i/o 流操作符还是什么?现在我有以下代码:
#include <iostream> // person.h
#include <string>
#include <vector>
using namespace std;
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
using namespace rapidjson;
class person {
public:
std::string name;
string surname;
int age;
person();
~person();
person(string, string, int);
template <typename Writer>
void Serialize(Writer& writer) const {
writer.StartObject();
writer.String("name");
writer.String(name.c_str());
writer.String("surname");
writer.String(surname.c_str());
writer.String(("id"));
writer.Uint(age);
writer.EndObject();
}
std::string serialize(){
StringBuffer s;
Writer<StringBuffer> writer(s);
Serialize(writer);
return s.GetString();
}
};
#include "person.h" // person.cpp
person::person() {
}
person::~person() {
}
person::person(string name, string surname, int age) : name(name), surname(surname), age(age) {
}
#include "person.h" // main.cpp
int main() {
vector<person> Save;
person P1("Tak", "Nie", 20);
person P2("Yes", "No", 10);
Save.push_back(P1);
Save.push_back(P2);
cout << P1.serialize();
cout << P2.serialize();
return 0;
}
【问题讨论】:
-
你有什么问题?
-
我想将向量中的“人”对象保存到文件中,并在我再次打开程序时将它们加载回向量中以扩展数据库。
标签: c++ serialization save load rapidjson