0

配列が unsigned char として宣言され、範囲 0x00-0xff の値で初期化され、cout を使用して出力されると、次のようにガベージ値が取得されます。

+   (   �           
~   �   �   �   
    �       O   
    �   �   <   

数字にシングルバイトを使用する方法を知っていても、 cout を使用できるでしょうか?

4

3 に答える 3

3

であるため、unsigned charそれらstd::coutは端末に渡され、文字セットとして表示されます (まあ、とにかく試してみてください - 値は、使用している文字セットの有効な印刷可能な文字の範囲外です)。

unsigned intで出力する場合にキャストしcoutます。

于 2012-02-18T06:30:32.567 に答える
2

Char タイプはデフォルトで文字として表示されます。それらを整数として表示したい場合は、最初に変換する必要があります。

unsigned char value = 42;
std::cout << static_cast<unsigned int>(value);
于 2012-02-18T06:33:14.270 に答える
1

これらはガベージ値ではありません。それらはキャラクターが表すものです。int として出力するにunsigned intは、出力時にキャストするだけです。

cout << (unsigned int) some_char;
于 2012-02-18T06:30:29.717 に答える