分解比特串c ++

时间:2014-10-28 22:08:10

标签: visual-c++ huffman-code bitstring

好吧所以我正在尝试做一个霍夫曼编码/解码项目atm。我有所有的压缩工作,并试图将bitstring作为一个字节放在输出文件上。所以我做了一个示例代码,用一个小例子进行测试,看看它是如何工作的。使用下面的代码,我可以正确输出前8位(“11100011”),但第二次我得到16位(“110001010101010”)。有人会暗示我哪里出错了吗?非常感谢你提前。

鉴于:string bitstring =“11100011110001010101010”;       unsigned char byte = 0;

for (int i = 0; i < bitstring.length(); i += 8){
    string stringof8 = "";
    if (i + 8 < bitstring.length()){
        stringof8 = bitstring.substr(i, 8);
        cout << stringof8 << endl;
    }
    else{
        stringof8 = bitstring.substr(i);
        cout << stringof8 << endl;
    }
}

system("pause");

我也在使用visual studio。

*编辑:已修复

1 个答案:

答案 0 :(得分:0)

检查substr参数的定义。是第二个参数位置还是长度?