我正在尝试将一个无符号的短整型转换为十六进制表示形式,并使用stringstream前缀为0.我似乎无法得到大写,0是正确的.这是我现在所在:
USHORT id = 1127; std::stringstream ss; ss << std::showbase << std::uppercase << std::setfill('0') << std::setw(4) << std::hex << id; std::string result = ss.str();
这导致前缀“0x”基数也是大写,但我希望它是小写的.它也导致在前缀0x base(当前为0X)之后的十六进制值中没有前缀0.例如,现在将输出0X467而不是预期的0x0467.我该如何解决?