0

重複の可能性:
ostream を使用して c++ で unsigned char を 16 進数として出力するにはどうすればよいですか?
ASCII 文字列を 10 進数および 16 進数表現に変換する

isprint() を使用して、文字の 16 進値を出力したいと考えています。しかし、私はそれを機能させることができません。これは私の試みです:

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

この16進値を印刷するのを手伝ってくれる人はいますか? ありがとう!次のようなものを入力しています:

私はそれが16進値であることを望みます。

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 に答える