0

可能重复:
如何使用 ostream 在 c++ 中将无符号字符打印为十六进制?
将 ASCII 字符串转换为十进制和十六进制表示

我想使用 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;
  }
}

谁能帮我打印出这个十六进制值?谢谢!我正在输入以下内容:

一世

我想要它的十六进制值。

4

1 回答 1

3

默认情况下,char 打印为字符串字符。尝试将 char 转换为这样的一般 int:

cout << "ERROR: expected <value> found " << hex << static_cast<int>(w[c]) << endl;
于 2012-10-21T01:17:09.073 回答