cout が unsigned char を正しく出力しないのはなぜですか?
提供されたコード内:
#include <iostream> #include <stdio.h> using namespace std; int main() { unsigned char a = 1; printf("%d", a); cout << a; }
出力には以下が含まれますcout を使用して出力すると、ガベージとして表示される値。これは、(1) の値に対応する ASCII 文字が印刷できないために発生します。これを確認するには、次のように std::isprint を使用します。
std::cout << std::isprint(a) << std::endl;
結果は 0 (false) になり、文字が印刷できないことを示します。
この問題を解決するには、 cout print "1" を用意し、 a を符号なし整数にキャストします:
cout << static_cast<unsigned>(a) << std::endl;
以上が「cout」が「unsigned char」値を正しく出力しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。