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流原始数据的输出。
本文介绍了在C++中利用hex标识符进行十六进制数值的输出,特别是针对u8和char类型字符数组的转换,这对于处理TCP流中的原始数据输出尤为有用。
6746

被折叠的 条评论
为什么被折叠?



