关于在 C++ 中使用整数,我遇到了一个奇怪的问题。
我写了一个简单的程序,为一个变量设置一个值,然后打印它,但它没有按预期工作。
我的程序只有两行代码:
uint8_t aa = 5;
cout << "value is " << aa << endl;
这个程序的输出是值是
即,它为 aa
打印空白。
当我将 uint8_t
更改为 uint16_t
时,上面的代码就像一个魅力。
我使用 Ubuntu 12.04 (Precise Pangolin),64 位,我的编译器版本是:
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
最佳答案
它实际上并没有打印空白,但很可能是值为 5 的 ASCII 字符,它是不可打印的(或不可见的)。有很多 invisible ASCII character codes ,大部分都在32以下,实际上是空白。
你必须转换 aa
至 unsigned int
输出数值,因为 ostream& operator<<(ostream&, unsigned char)
尝试输出可见字符值。
uint8_t aa=5;
cout << "value is " << unsigned(aa) << endl;
关于c++ - uint8_t 不能用 cout 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54355308/