【发布时间】:2019-02-28 03:57:47
【问题描述】:
我尝试了许多其他线程的建议,但均无济于事。
我正在做霍夫曼的编码,我遇到问题的部分是让我的string 'byte'(通常长度为 8)作为字符写入输出二进制文件。每当我打开输出文件时,这些位与我认为输入的完全不同。此外,当我在将字符串“字节”转换为字节到字符后输出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- 输出文件流
【问题讨论】:
标签: c++