【发布时间】:2010-01-13 15:31:33
【问题描述】:
我想从/向二进制文件读取和写入 n 位。 例如,将接下来的 n 位读入一个整数或接下来的 n 位 到一个字符。我需要数据位对齐而不是字节对齐。
是否有 C++ 库允许我这样做?
当我使用 ostream/istream 时,我似乎仅限于使用字节对齐 数据。如果我希望我的数据被紧紧地打包,这还不够好。
【问题讨论】:
-
为什么需要如此紧密地打包数据?您是否考虑过使用压缩库(例如 zlib)?这对您来说会更轻松,并且可能占用更少的空间。
-
您的位是否捆绑到字节对齐的块中?如果是这样,您可以正常读取字节并使用位移位和位掩码获取位。
标签: c++ parsing binaryfiles writing