配列が unsigned char として宣言され、範囲 0x00-0xff の値で初期化され、cout を使用して出力されると、次のようにガベージ値が取得されます。
+ ( �
~ � � �
� O
� � <
数字にシングルバイトを使用する方法を知っていても、 cout を使用できるでしょうか?
配列が unsigned char として宣言され、範囲 0x00-0xff の値で初期化され、cout を使用して出力されると、次のようにガベージ値が取得されます。
+ ( �
~ � � �
� O
� � <
数字にシングルバイトを使用する方法を知っていても、 cout を使用できるでしょうか?
であるため、unsigned char
それらstd::cout
は端末に渡され、文字セットとして表示されます (まあ、とにかく試してみてください - 値は、使用している文字セットの有効な印刷可能な文字の範囲外です)。
unsigned int
で出力する場合にキャストしcout
ます。
Char タイプはデフォルトで文字として表示されます。それらを整数として表示したい場合は、最初に変換する必要があります。
unsigned char value = 42;
std::cout << static_cast<unsigned int>(value);
これらはガベージ値ではありません。それらはキャラクターが表すものです。int として出力するにunsigned int
は、出力時にキャストするだけです。
cout << (unsigned int) some_char;