C++ 将字节数组转换为十六进制字符串
下面是我为将字节数组打印为十六进制字符串而编写的一个示例,但现在我想将它们保存为std::String,稍后再使用它 这是我的密码C++ 将字节数组转换为十六进制字符串,c++,C++,下面是我为将字节数组打印为十六进制字符串而编写的一个示例,但现在我想将它们保存为std::String,稍后再使用它 这是我的密码 typedef std::vector<unsigned char> bytes; void printBytes(const bytes &in) { std::vector<unsigned char>::const_iterator from = in.begin(); std::vector<unsign
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);
}
typedef std::向量字节;
无效打印字节(常量字节和英寸)
{
std::vector::const_迭代器from=in.begin();
std::vector::const_迭代器to=in.end();
对于(;from!=to;++from)printf(“%02X”,*from);
}
我能做什么?我想将其保存为字符串而不是在控制台窗口中打印(显示)?
任何想法 使用:
typedef std::向量字节;
std::string bytestost(常量字节和英寸)
{
bytes::const_iterator from=in.cbegin();
bytes::const_迭代器to=in.cend();
std::ostringstream oss;
for(;from!=到;++from)
OSS“C++中没有StringBuilder这样的函数”——是的,它叫做“代码> STD::OSTRINGSWATS。<代码> StistaCaseCube())/C++ >比C风格的Case<代码>(int)更为地道。
。如果您想将0x
附加到前面,请使用@phoenix如何将此字符串转换回原来的格式?@anc:您可以使用std::hex
和std::setw()
与std::istringstream
和操作符>
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();
}