以printf在C++中的方式转换unsigned char

use*_*697 0 c++ printf hex

我有一个unsigned char我想要转换为十六进制.我知道printf("%02X", char)给了我想要的输出,但它被发送到终端,因此没用.如何将字符转换为十六进制并以与printf相同的方式将其存储在变量中?

cni*_*tar 6

怎么样的:

stringstream ss;
ss << std::hex << std::setw(2) << (unsigned int) x;

cout << ss.str() << endl;
Run Code Online (Sandbox Code Playgroud)

你可能想要调整stringstream一些更多.