作者maplefog (楓霧)
看板C_and_CPP
標題[問題] 不同struct如何存到同一個檔案內
時間Fri Jun 11 19:36:12 2010
( *[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