[問題] 物件寫入檔案

看板C_and_CPP (C/C++)作者 (累人啊....)時間16年前 (2009/09/03 14:53), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/2 (看更多)
請問,以這樣的class為例 class Realation{ public: Realation(int vAID,int vBID); int AID; int BID; }; class TruRealation{ public: void add(Realation OB); void Record(); list<Realation> Load; }; 然後我在主程式上打了一些程式碼 TruRealation TruRea; TruRea.add(Realation(1,12)); TruRea.add(Realation(2,11)); TruRea.add(Realation(3,10)); 然後我要將新增的物件寫入檔案裡,所以void Record()函式我這樣寫 void TruRealation::Record(){ ifstream infile(".\\abc.bin"); infile.open(".\\abc.bin",ios::in | ios::binary); for (list<Realation>::iterator i=Load.begin();i!=Load.end();++i){ ?????????? } } 打問號的地方我就不知道要寫什麼了 參考我書上的範例及解釋,我想上面應該要這樣寫 outfile.write(reinterpret_cast<char*>(i),sizeof(i)); 不過會錯,我想錯的原因可能是i的型態是iterator 但我不知道要怎麼改,另外我看書後 也不是很懂為何這個地方一定要用reinterpret_cast轉型 以上兩個問題,煩請了解的大大說明一下,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.18.48.28

09/03 16:32, , 1F
ofstream, not ifstream
09/03 16:32, 1F

09/03 16:33, , 2F
然後這個強制轉型的寫入方法, 我個人覺得很爛
09/03 16:33, 2F

09/03 16:55, , 3F
恩,ofstream筆誤,那請問大大您的方法是...?
09/03 16:55, 3F

09/03 17:00, , 4F
我的話是會做 toString(), <<, >> 三個方法
09/03 17:00, 4F

09/03 17:00, , 5F
高級一點就用 boost::serialization
09/03 17:00, 5F

09/03 20:31, , 6F
不是很了解,可以寫個例子嗎?
09/03 20:31, 6F
文章代碼(AID): #1AdsW1Jm (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AdsW1Jm (C_and_CPP)