空字符串不作处理; 若长度是8的倍数,不用补0; 若长度不是8的倍数,求出补0的个数,把0补上,再8个8个拆分输出。

#include <iostream>
#include <string>


int main(int argc, char* argv[]){
    std::string str;
    while(std::cin >> str){
        const int size = str.size();
        if(size == 0){
            std::cout << str << std::endl;
            continue;
        }
        int zeros = 0;
        if(size % 8){
            zeros = 8 - (size % 8);
        }
        str.append(zeros, '0');
        for(int i = 0; i < str.size(); i += 8){
            std::cout << str.substr(i, 8) << std::endl;
        }
    }
    return 0;

}