Я знаю, что есть много вопросов по этой теме, но я думаю, что не могу найти правильные ключевые слова, поэтому я спрашиваю.
Я хочу распечатать байты байтового буфера для вывода на консоль в шестнадцатеричном формате (0xABCDEF), но я не знаю, что такое байтовый буфер и для чего он используется?
Мне нужны следующие вещи, и я только начинающий, поэтому, пожалуйста, сделайте это простым, чтобы я мог получить. (на с / с ++)
@param pBytes указатель на байтовый буфер
@param nBytes длина байтового буфера в байтах
void PrintBytes(const char* pBytes, const uint32_t nBytes);
Мне нужны эти функции.
Вам не нужно давать ответы, которые мне нужны, чтобы мне было легче!
Спасибо!
С 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;
}
}
использование наговор манипулятор
#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 ] );
}
}