这是我写的一个字节数组打印到十六进制字符串,但现在我想将它们保存为std :: string并稍后使用
这是我的代码
typedef std::vector<unsigned char> bytes;
void printBytes(const bytes &in)
{
std::vector<unsigned char>::const_iterator from = in.begin();
std::vector<unsigned char>::const_iterator to = in.end();
for (; from != to; ++from) printf("%02X", *from);
}
我该怎么办?,我想在控制台窗口中将其保存为字符串而不是打印(显示)? 任何想法!
答案 0 :(得分:2)
typedef std::vector<unsigned char> bytes;
std::string BytesToStr(const bytes &in)
{
bytes::const_iterator from = in.cbegin();
bytes::const_iterator to = in.cend();
std::ostringstream oss;
for (; from != to; ++from)
oss << std::hex << std::setw(2) << std::setfill('0') << static_cast<int>(*from);
return oss.str();
}