2014-12-25 78 views
0

我應該如何繼續使函數讀取,每次文件啓動時讀取file.dat? 我將一個對象寫入該文件,並且我需要在程序啓動時讀取。C++讀取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(); 

} 
+0

你有沒有想要和我們分享的一些具體問題? –

+3

另請注意'sizeof(writer)'總是會產生指針的大小,而不是它指向的數據的大小。 –

回答

0

首先,你的sizeof操作符返回指針的大小,而不是類的。其次,如果你想簡單地將內存轉儲到一個文件並在稍後閱讀,那麼該類本身必須是POD。第三,你正在寫指針本身的值,而不是類數據。