C++中输出/输入十六进制数:hex标识符,将整数a以十六进制的形式输出(与c中的%x一样)
例如:
cout << hex << a << endl;
cin >> hex >> a; //输入f,则输出15
使用示例(这里的做法,返回值将辅助日志中对原始报文的输出):
#include <iomanip>
string getHexString(u8* s, const u32& len)
{
std::ostringstream out;
out << std::hex << std::setw(2) << std::setfill('0');
for (u32 i = 0; i < len; i++) {
out << std::hex << std::setw(2)
<< std::setfill('0') << static_cast<int>(s[i]) << " ";
}
return out.str();
}
- 该方法可以将u8或char型的字符数组,按照十六进制转化,
setw(2)设置占位为2位;
setfill('0')设置使用'0'不足2位用0补全;
- 适用于tcp流原始数据的输出。