c ++在file.dat中读取已保存的对象

时间:2014-12-25 16:16:33

标签: c++

如果文件启动,我该怎么办才能读取函数,get读取file.dat? 我将一个对象写入文件,我需要在程序启动时读取。

问题:每当我启动程序读取已经保存的数据时,我就会出现分段错误问题

    void DataManip::DataManipWrite(DateAdress *writer) {

    ofstream ObjectWriter;
    ObjectWriter.open("dbaddress.dat", ios::binary);    
    ObjectWriter.write((char *)&writer, sizeof(writer));
    ObjectWriter.close();

}

void DataManip::DataManipRead(DateAdress *reader) {

    ifstream ObjectReader;
    ObjectReader.open("dbaddress.dat", ios::binary);    
    ObjectReader.read((char *)&reader, sizeof(reader));
    ObjectReader.close();

}

1 个答案:

答案 0 :(得分:0)

首先,sizeof运算符返回指针的大小而不是类。其次,如果你想简单地将内存转储到文件中并稍后阅读,那么类本身必须是POD。第三,你正在写指针本身的值,而不是类数据。