我是新来的,所以我会尽量清楚地说明我的问题。我试图得到一个直接的答案,但当我检查其他问题时,它们非常特殊,我感到困惑。
我有一个二进制文件,我需要为我的项目读取它。我还有一张规范表,我正在根据这些规范阅读文件。所以我创建了一个 cpp 文件,并编写了一个简单的程序来读取每个元素。我使用 ifstream 和 read() 函数从文件中读取。
问题是在规范表上,我知道我需要读取大小为 12 的位串。从细节来看,很明显我应该只为每个元素读取 12 位。但是我不确定是否可以一点一点地阅读。其余元素以字节为单位读取。而且,如果我每次读取 2 个字节并使用位“掩码”仅获取 12 位,则此后读取的其余元素将无法正确匹配。所以我的猜测是我真的只需要读取 12 位。
所以我的问题。是否可以从二进制文件中读取 12 位?或阅读点点滴滴? .我的意思是只有 12 个,没有读取字节然后屏蔽它们。
非常感谢。
最佳答案
不,这是不可能的。
您应该做的是读取 2 个字节,屏蔽 12 位以获得您想要的结果,同时将其他 4 位存储在某处。现在,当您再次需要 12 位时,只读取 1 个字节并将其与 4 个存储位组合。
关于c++ - 是否可以使用 C++ 从二进制文件中逐位读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31919011/