Распечатка байтов байтового буфера в консольный выходной поток в шестнадцатеричном формате (0xABCDEF)

Я знаю, что есть много вопросов по этой теме, но я думаю, что не могу найти правильные ключевые слова, поэтому я спрашиваю.

Я хочу распечатать байты байтового буфера для вывода на консоль в шестнадцатеричном формате (0xABCDEF), но я не знаю, что такое байтовый буфер и для чего он используется?

Мне нужны следующие вещи, и я только начинающий, поэтому, пожалуйста, сделайте это простым, чтобы я мог получить. (на с / с ++)

@param pBytes указатель на байтовый буфер
@param nBytes длина байтового буфера в байтах

void PrintBytes(const char* pBytes, const uint32_t nBytes);

Мне нужны эти функции.

Вам не нужно давать ответы, которые мне нужны, чтобы мне было легче!
Спасибо!

-3

Решение

С C ++ вы можете сделать что-то вроде этого:

#include <iostream>
#include <iomanip>

void PrintBytes(
const char* pBytes,
const uint32_t nBytes) // should more properly be std::size_t
{
for (uint32_t i = 0; i != nBytes; i++)
{
std::cout <<
std::hex <<           // output in hex
std::setw(2) <<       // each byte prints as two characters
std::setfill('0') <<  // fill with 0 if not enough characters
static_cast<unsigned int>(pBytes[i]) << std::endl;
}
}
7

Другие решения

использование наговор манипулятор

#include <iomanip>
#include <iostream>

void PrintBytes(const char* pBytes, const uint32_t nBytes) {
for ( uint32_t i = 0; i < nBytes; i++ ) {
std::cout << std::hex << (unsigned int)( pBytes[ i ] );
}
}
2

По вопросам рекламы [email protected]