【发布时间】:2019-06-21 16:23:53
【问题描述】:
假设我有一个总计为 32 位的位域。我想将这些输出到二进制文件中,我们称之为“binary.bin”。如何在不崩溃 Visual Studio 的情况下解决这个问题?
我从以前的谷歌搜索中发现的关于此类事情的信息太少了,我不知道该怎么办。通常的反应是“没有人使用位域 lmao”,但事实证明我需要使用位域来工作。
我知道位域有时低于 8 位,因此无法放入字节中,这使得处理变得困难,但这并不意味着我不能将 32 位位域放入二进制文件,对吧?
我在其他地方找到了有关打印到二进制文件的信息,希望它可以工作。
struct bitfield {
unsigned int b1 : 22;
unsigned int b2 : 4;
unsigned int b3 : 5;
unsigned int b4 : 1;
};
int main(){
std::ofstream ofile("binary.bin", std::ios::binary);
ofile.write((char*)&bitfield.b1, sizeof(unsigned int));
return 0;
}
这甚至不起作用,我不知道为什么,当我说 bitfield.b1 时它不喜欢它
如果你能给我任何帮助,我将不胜感激????
【问题讨论】:
-
“这根本行不通” 不是一个简明的问题描述。 Edit你的问题请澄清。
标签: c++ io binary bit-fields