打印出Hex?

时间:2012-10-21 01:13:21

标签: c++

  

可能重复:
  how do I print an unsigned char as hex in c++ using ostream?
  Convert ASCII string into Decimal and Hexadecimal Representations

我想使用isprint()打印出字符的十六进制值。但是,我无法让它发挥作用。这是我的尝试:

getline(cin, w);
for(unsigned int c = 0; c < w.size(); c++)
{
  if(!isprint(w[c]))
  {
    cout << "ERROR: expected <value> found " << hex << w[c] << endl;
    return 0;
  }
}

有人可以帮我打印出这个十六进制值吗?谢谢!我输入的内容如下:

I

我希望它是十六进制值。

1 个答案:

答案 0 :(得分:3)

默认情况下,char作为字符串字符打印。尝试将char转换为通用int,如下所示:

cout << "ERROR: expected <value> found " << hex << static_cast<int>(w[c]) << endl;