C++ 读取文件.dat中保存的对象



我应该如何继续,以便函数读取,获取读取文件.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();
}

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

最新更新