1

如何用 cout 编写以下函数?我的主要目的是在我知道如何将它与 cout 一起使用之后将所有值实际打印到文件中。std::hex 不起作用!

void print_hex(unsigned char *bs, unsigned int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        printf("%02x", bs[i]);
        //Below does not work
        //std::cout << std::hex << bs[i];
    }

}

编辑:

cout 打印出值,例如: r9{èZ[¶ôÃ

4

1 回答 1

7

我认为向 int 添加强制转换可以满足您的要求:

#include <iostream>
#include <iomanip>

void print_hex(unsigned char *bs, unsigned int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        std::cout << std::hex << static_cast<int>(bs[i]);
    }

}

int main() {
  unsigned char bytes[] = {0,1,2,3,4,5};
  print_hex(bytes, sizeof bytes);
}

这需要强制它打印为数字,而不是您所看到的字符。

于 2012-08-01T18:46:01.450 回答