c++ - 以十六进制表示法 (0xABCDEF) 打印字节缓冲区的字节到控制台输出流

标签 c++ c types bytebuffer hex

我知道有很多关于这个主题的问题,但我认为找不到合适的关键字,所以我提出来。

我想以十六进制表示法 (0xABCDEF) 打印字节缓冲区的字节以进行控制台输出,但我不知道字节缓冲区是什么以及它的用途是什么?

我需要以下东西,而且我只是一个初学者,所以请让它变得简单,我能得到。 (在 C/C++ 中)

@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;
    }
}

关于c++ - 以十六进制表示法 (0xABCDEF) 打印字节缓冲区的字节到控制台输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481291/

相关文章:

c++ - Rcpp 中没有调用 'as' 的匹配函数

c++ - ActiveMQ C++ 同步客户端

c - 为什么不能在 pthread 中访问 Cocoa 控件?

.net - 检查 c# 7 中 Valuetuple 列表中的各个项目

c# - 为什么 String 是 Value 类型,虽然它是一个类而不是一个结构?

memory - Linux size命令,为什么bss和data部分不为零?

c++ - 条件编译和非类型模板参数

c - 堆栈对齐如何工作?

使用 open() 或 creat() 创建的文件设置的权限比我要求的要少

c++ - 如何使用变量模板比较C++ 17中的变量类型?