我第一次使用二進制文件進行處理,並且手頭有一堆頭髮。不管怎麼說,我有以下定義:將無符號整數寫入二進制文件
unsigned int cols, rows;
這些變量可以是約500當我到他們寫入到一個二進制文件,從1任何地方,我這樣做:
myFile.write(reinterpret_cast<const char *>(&cols), sizeof(cols));
myFile.write(reinterpret_cast<const char *>(&rows), sizeof(rows));
當我回去讀取文件,對cols = 300
,我得到這個結果爲:
44
1
0
0
可有人請爲什麼我得到這個結果給我解釋一下?我不能說有什麼不對,因爲我真的認爲這是我不明白的事情。我想要做的就是將該值存儲在文件中,以便當我讀回時,我也可以讀取它。也許我這樣做,我只是不知道。
我想解釋一下這是如何工作的,以及如何獲取我放回的數據。
如何'myFile'聲明? – jogojapan
你應該考慮使用Boost Serialization。它將使得將任何東西歸檔到二進制文件或ASCII文件或任何你想要的東西變得非常容易:[序列化](http://www.boost.org/doc/libs/1_53_0/libs/serialization/doc/index.html) –
@jogojapan:ofstream myFile; – KirAsh4