当一个数组被声明为 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;