2012-02-18 16 views
0

配列はunsigned char型として宣言し、範囲0x00-0xff内の値で初期化し、COUTを使用して印刷した場合ごみ値配列は、unsigned char型として宣言されたときに

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

を次のように、私はゴミ値を取得し、私が知っているかもしれませんどのように数字のための1バイトを使用しても、まだ使用することができますcout?

+0

初期化コードと印刷コードの両方を表示することはできますか? – Lefteris

+0

印刷できない文字を印刷しようとしています。 –

答えて

3

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

coutと出力するときは、unsigned intにキャストします。

1

これらはガベージ値ではありません。それらは文字が表すものです。 intとしてこれを印刷するには、単に出力時にunsigned intにキャスト:

cout << (unsigned int) some_char; 
2

文字タイプは、デフォルトで文字として表示されます。

unsigned char value = 42; 
std::cout << static_cast<unsigned int>(value); 
関連する問題