C ++几个对象序列化

Jor*_*sov 1 c++ serialization file object

所以我对单个对象进行了序列化,但是我遇到了一些问题。这是代码:

    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;
    class MyTest
    {
    private:
        string test;
    public:
        MyTest():test(""){};
        void setTest(const string& test) {this->test = test;};
        string getTest() const {return this->test;};
    };
    void writeToFile(const MyTest& m)
    {
        ofstream ofs("data.mbp", ios::app|ios::binary);
        ofs.clear();
        ofs.write((char *)&m, sizeof(m));
        ofs.flush();
        ofs.close();
        return;
    };
    MyTest& readTest(MyTest& m,int num)
    {
        ifstream ifs;
        ifs.open("data.mbp", ios::in|ios::binary);
        for ( int i = 1 ; i <= num ; i++)
            ifs.read((char *)&m, sizeof(m));
        return m;
    }

    int main(int argc,char* argv[])
    {
        MyTest m,t;
        m.setTest("Hello");
        writeToFile(m);
        t.setTest("World");
        writeToFile(t);
        t = readTest(t,1);
        cout << t.getTest() << endl;

        m = readTest(m,2);
        cout << m.getTest() << endl;


        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何在一个二进制文件中写入两个或多个对象,然后又如何读取它们。有人知道吗

提前致谢。

Ste*_*ter 5

我建议您使用Boost-Serialization对C ++中的对象进行序列化:http : //www.boost.org/libs/serialization/