最后我想到了
unsigned char str_to_byte(std::string s){
std::bitset<8> b(s);
return static_cast<unsigned char> (b.to_ulong());
}
void write(std::string s,std::ostream& out)
{
size_t len = s.length();
std::string tstring;
unsigned char c;
if (len < 8){
tstring = pad_string(s, 8);
c = str_to_byte(tstring);
//std::cout << tstring << std::endl;
out << c;
return;
}
size_t i = 0 ;
for (; i < len; i+=8){
tstring = s.substr(i,8);
//std::cout << tstring << std::endl;
c = str_to_byte(tstring);
out << c;
}
if (i != len){
i = i-8;
tstring = pad_string(s.substr(i,8),8);
//std::cout << tstring << std::endl;
c = str_to_byte(tstring);
out << c;
}
}