看板 C_and_CPP 關於我們 聯絡資訊
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 之前是把不同的struct存到不同檔案裡, 如此要存成很多檔案才行,現在希望能 把資料全部存在一個檔案裡面。但是這 樣會碰到一個問題,就是如何去分辨他 是哪個struct的內容,因為我希望讀取 後能夠恢復成儲存時後的狀態。 例如: struct A內容型態是int string double int struct B內容型態是string double double 檔案裡為 10 A 0.1 5 8 B 0.2 5 . . . C 12.1 10.2 D 8.5 7.3 . . . 希望得到的正確結果: 儲存時struct A種類有10個,讀取後也有10個,且內容跟儲存前一樣 儲存時struct B種類有3個,讀取後也有3個,且內容跟儲存前一樣 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Windows,VC++ 補充說明: 無 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.207.32
VictorTom:你是要存成文字檔案還是binary檔案?? 不管哪一種, 一個 06/11 19:37
VictorTom:簡單的方式是, 存struct前, 先寫入一個識別項, 比如一個 06/11 19:38
VictorTom:整數1或2, 來代表接著的是struct A還是B的資料, 那假定 06/11 19:38
VictorTom:A與B的大小各自是固定的或者有記錄的, 混著存取就都OK. 06/11 19:39
maplefog:讀取時,先讀第一個數字看是1或2 再來malloc A或B的大小 06/11 19:46
maplefog:然後再讀取1或2後面的資料 好像是這樣 感謝!! 06/11 19:47
leicheong:檔案開始時寫入兩段struct stream的長度, 讀入後再分拆 06/11 21:42
leicheong:也可以. 在開始定下目錄區長度, 再順序寫有多少個A和B 06/11 21:43
leicheong:也可以. 總之檔案格式這東西沒規定的話隨你喜歡... 06/11 21:44
lwecloud:或是寫成INI檔? 06/12 11:24