2010-11-28 48 views
9

我一直在嘗試幾個月來尋找一個用於平臺無關的二進制文件I/O的小型C或C++庫,這意味着endian交換和固定大小類型。我知道像wxWidgets和Qt這樣的大型圖書館擁有它們,像Java和C#這樣的語言也有它們,但我更喜歡使用小型圖書館而不是大型框架。用於平臺無關的二進制文件I/O的C/C++庫

+0

哦,7年多了......你找到了嗎? – kbec 2018-02-23 00:40:24

回答

1

爲什麼不使用與所有C++編譯器一起打包的fstream。您只需設置ios :: binary標誌並充分利用sizeof使其與操作系統無關。例如爲:http://courses.cs.vt.edu/~cs2604/fall02/binio.htmlhttp://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspx

+1

根據我的經驗,即使沒有處理平臺相關的東西,使用fstream也會變得非常混亂(長而重複的行,大量的強制轉換)。 – testtesttes 2010-11-28 09:42:44

+1

無需翻譯二進制輸入IMO。只要去std庫在這裏。 – rubenvb 2010-11-28 12:07:28

+2

因爲它是一個巨大的屁股疼痛,甚至不用二進制工作,而不訴諸噁心的黑客,如鑄造int到字符... – MarcusJ 2015-03-06 06:59:14

3

看一看Boost.Serialization

一個它的目標是「數據可移植性 - 在一個平臺上創建的字節流應該是可讀的任何其他。」

還有其他庫提供類似功能的鏈接。

1

對於大多數文件格式的工作,我更喜歡使用SQLite:http://www.sqlite.org/的很酷的事情是,你可以在操作系統訪問相同的數據文件編程語言設備。

相關問題