可能重复:
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
我希望它是十六进制值。
答案 0 :(得分:3)
默认情况下,char作为字符串字符打印。尝试将char转换为通用int,如下所示:
cout << "ERROR: expected <value> found " << hex << static_cast<int>(w[c]) << endl;