Visual c++ 断开一个位串C++

Visual c++ 断开一个位串C++,visual-c++,huffman-code,bitstring,Visual C++,Huffman Code,Bitstring,好的,我正在做一个哈夫曼编码/解码项目。我已经完成了所有的压缩工作,并尝试将位字符串作为字节放到输出文件中。因此,我制作了一个示例代码,用一个小示例进行测试,以了解它是如何工作的。使用下面的代码,我可以正确地输出前8位11100011,但第二次得到16位110001010101010。有人能暗示我哪里出错了吗?提前非常感谢 给定:字符串位字符串=111000111000010101010; 无符号字符字节=0 for (int i = 0; i < bitstring.length();

好的,我正在做一个哈夫曼编码/解码项目。我已经完成了所有的压缩工作,并尝试将位字符串作为字节放到输出文件中。因此,我制作了一个示例代码,用一个小示例进行测试,以了解它是如何工作的。使用下面的代码,我可以正确地输出前8位11100011,但第二次得到16位110001010101010。有人能暗示我哪里出错了吗?提前非常感谢

给定:字符串位字符串=111000111000010101010; 无符号字符字节=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");
我也在使用VisualStudio


*编辑:已修复检查substr参数的定义。第二个参数是位置还是长度?

wow。。。是的,我觉得自己很愚蠢。是的,修好了。stringof8=bitstring.substri,8。谢谢David,也请检查substr的另一个电话!