当数组被声明为无符号字符,并用范围为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