为了账号安全,请及时绑定邮箱和手机立即绑定

uint 8_t不能用cout打印

uint 8_t不能用cout打印

C++ C
子衿沉夜 2019-06-12 14:34:49
uint 8_t不能用cout打印在C+中处理整数有一个奇怪的问题。我编写了一个简单的程序,将一个值设置为一个变量,然后打印它,但是它并不像预期的那样工作。我的程序只有两行代码:uint8_t aa = 5;cout << "value is " << aa << endl;这个程序的输出是value is也就是说,它打印空白aa.当我改变uint8_t到uint16_t上面的代码工作起来很有魅力。我使用Ubuntu12.04(精确的穿山甲),64位,我的编译器版本是:gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
查看完整描述

3 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

它实际上不打印空白,但很可能是值5的ASCII字符,它是不可打印的(或不可见的)。有一些隐形ASCII字符码,它们中的大多数都低于32,这实际上是空白。

你必须皈依aaunsigned int若要输出数字值,请执行以下操作:ostream& operator<<(ostream&, unsigned char)尝试输出可见字符值。

uint8_t aa=5;cout << "value is " << unsigned(aa) << endl;


查看完整回答
反对 回复 2019-06-12
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

uint8_t很可能是typedefunsigned char..这个ostream类有一个特殊的重载unsigned char,即它用数字5打印字符,这是不可打印的,因此空间。


查看完整回答
反对 回复 2019-06-12
  • 3 回答
  • 0 关注
  • 1415 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信