为什么 cout 无法正确打印无符号字符?
代码片段中:
#include<iostream> #include<stdio.h> using namespace std; main() { unsigned char a; a=1; printf("%d", a); cout<<a; }
cout 正在打印看似垃圾的值。然而,这实际上并不是垃圾。它是正在打印的不可打印 ASCII 字符。请注意,对应于 1 的 ASCII 字符是不可打印的。
您可以使用 std::isprint:
std::cout << std::isprint(a) << std::endl;
这将打印 0(假),表明该字符不可打印。
要强制 cout 打印 1,请将 a 转换为无符号整数:
cout << static_cast<unsigned>(a) << std::endl;
以上是为什么 `cout` 不能正确打印无符号字符值?的详细内容。更多信息请关注PHP中文网其他相关文章!