十六进制输出到String c ++

Chr*_* S. 3 c++ string hex stringstream

我正在尝试将printf输出转换为std::string变量。我有以下for循环:

for(i=0; i<53; i++) {
    printf("%02X", pbRecvBuffer[i]);
}
Run Code Online (Sandbox Code Playgroud)

此循环的输出为十六进制值,例如:01445420434F2..。我的第一次尝试是使用stringstream以下方法:

stringstream os;

for(i=0; i<53; i++) 
    os << std::hex << pbRecvBuffer[i];

std::cout << os << std::endl;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这给了我错误的结果。也许有人直接看到它可以帮助我。

cam*_*mp0 5

通常,对于以十六进制和整数为单位的流,例如:

std::ios_base::fmtflags f(out.flags()); // Init

out <<std::hex << std::setfill('0') << std::setw(2) << (unsigned int)pbRecvBuffer[i];

out.flags(f); // restore
Run Code Online (Sandbox Code Playgroud)

一般来说,是从std :: cout,std :: ostringstream,std :: basic_ostream等派生的对象