【问题标题】:Writing an "8 bit" (byte) string to a binary file?将“8位”(字节)字符串写入二进制文件?
【发布时间】: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++


    【解决方案1】:

    您尝试将您的位集表示为无符号长整数是否有原因?从您的描述看来,您正在尝试做的事情已经被bitset::to_string link 的功能所覆盖

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2014-03-07
      • 2020-08-28
      • 1970-01-01
      • 2021-10-27
      • 2016-01-15
      • 2012-09-22
      • 2016-10-03
      相关资源
      最近更新 更多