2014-10-28 2 views
0

ok 그래서 나는 Huffman 인코딩/디코딩 프로젝트 atm을 시도하고있다. 압축 작업을 모두하고 비트 스트링을 출력 파일에 바이트로 넣으려고했습니다. 그래서 샘플 코드를 작성하여 작은 예제로 테스트 해 보았습니다. 아래의 코드를 사용하면 처음 8 비트 ("11100011")를 출력 할 수 있지만 두 번째 때는 16 비트 ("110001010101010")가됩니다. 누군가 내가 잘못 갔다는 것을 암시 할 수 있습니까? 미리 감사드립니다.비트 스트링을 깨기 C++

감안할 때 : string bitstring = "11100011110001010101010"; 부호없는 char 바이트 = 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를 사용하고 있습니다.

* 수정 : 수정

답변

0

substr 매개 변수의 정의를 확인하십시오. 두 번째 매개 변수의 위치 또는 길이입니까?

+0

와우 ... 예, 바보 같아요. 네, 그것을 고정 고정. (stringof8 = bitstring.substr (i, 8)). 감사합니다. davidc – ashep08

+0

substr에 대한 다른 호출도 확인하십시오! – davidc