C++20: 如何将内存数据以十六进制字符串打印
可以使用以下代码将一段内存数据以十六进制字符串打印出来:
#include <iostream>
#include <iomanip>
void printHex(const unsigned char* data, size_t length) {
std::cout << std::hex << std::setfill('0');
for (size_t i = 0; i < length; ++i) {
std::cout << std::setw(2) << (unsigned int)data[i] << ' ';
}
std::cout << std::dec << std::endl;
}
int main() {
unsigned char data[] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0};
size_t length = sizeof(data) / sizeof(data[0]);
printHex(data, length);
return 0;
}
输出结果为:
12 34 56 78 9a bc de f0
该函数接收一个指向内存数据的指针和数据长度,使用std::cout以十六进制格式打印每个字节的值,并在每个字节之间加上一个空格。std::setw()和std::setfill()函数用于设置每个字节的宽度和填充字符。
原文地址: https://www.cveoy.top/t/topic/lEE1 著作权归作者所有。请勿转载和采集!