gpt4 book ai didi

c++ - uint8_t 不能用 cout 打印

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:36 24 4
gpt4 key购买 nike

关于在 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以下,实际上是空白。

你必须转换 aaunsigned 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com