将"8 bit"(字节)字符串写入二进制文件?

Writing an "8 bit" (byte) string to a binary file?

本文关键字:字符串 二进制文件 字节 bit      更新时间:2023-10-16

我已经尝试了许多其他线程的建议,但无济于事。

我正在执行Huffman的编码,而我遇到的部分是让我的string 'byte'(通常长度8)作为输出二进制文件的字符写入。每当我打开输出文件时,位都与我认为输入的内容完全不同。此外,当我在将字符串'字节'转换为字节为char之后输出char 'c'时,'c'的二进制文件与我的原始输入不符。例如,'c'将是一个10位字符,总的来说,我超级困惑。

那么,我该如何正确执行?还是问题可能在其他地方?

这是代码:

if (byte.length() >= 8) {
            bitset<8> b(byte.substr(0, 8));
            c = static_cast<unsigned char>(b.to_ulong());
            flit.write(&c, 1);
    }
  • byte-符合我的位字符的字符串
  • flit- ouput文件流

您是否有一个原因您试图将bitset表示为无签名的长时间?从您的描述中,听起来您要做的事情由bitset::to_string链接的功能

涵盖