當數組被聲明爲無符號字符,並用範圍爲0x00-0xff值進行初始化並且使用COUT印刷,我得到垃圾值如下:垃圾值時,聲明爲無符號字符陣列
+ ( �
~ � � �
� O
� � <
我可以知道如何使用單字節的數字,但能夠使用cout?
當數組被聲明爲無符號字符,並用範圍爲0x00-0xff值進行初始化並且使用COUT印刷,我得到垃圾值如下:垃圾值時,聲明爲無符號字符陣列
+ ( �
~ � � �
� O
� � <
我可以知道如何使用單字節的數字,但能夠使用cout?
因爲它是一個unsigned char
,std::cout
是將它們傳遞給終端和它被顯示爲一個字符集(好吧,試圖,反正 - 的值在您使用的字符集的有效可打印字符範圍之外)。
當用cout
輸出時轉換爲unsigned int
。
那些不是垃圾值。這些就是角色所代表的。要打印它作爲一個int,只是轉換爲unsigned int
在輸出時間:
cout << (unsigned int) some_char;
默認情況下,字符類型顯示爲字符。如果你希望他們顯示爲整數,則必須將它們先轉換:
unsigned char value = 42;
std::cout << static_cast<unsigned int>(value);
我們可以看到這兩個初始化代碼和打印的代碼? – Lefteris 2012-02-18 06:29:32
您正在嘗試打印不可打印的字符。 – 2012-02-18 06:33:45