Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字节数组转换为十六进制字符串_C++ - Fatal编程技术网

C++ 将字节数组转换为十六进制字符串

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

下面是我为将字节数组打印为十六进制字符串而编写的一个示例,但现在我想将它们保存为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);
}
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();
}