2010-11-28 44 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/的很酷的事情是,你可以在操作系统访问相同的数据文件编程语言设备。

相关问题