uint 8_t不能用cout打印

uint 8_t不能用cout打印

在C+中处理整数有一个奇怪的问题。

我编写了一个简单的程序,将一个值设置为一个变量,然后打印它,但是它并不像预期的那样工作。

我的程序只有两行代码:

uint8_t aa = 5;cout << "value is " << aa << endl;

这个程序的输出是value is

也就是说,它打印空白aa.

当我改变uint8_tuint16_t上面的代码工作起来很有魅力。

我使用Ubuntu12.04(精确的穿山甲),64位,我的编译器版本是:

gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)


子衿沉夜
浏览 1417回答 3
3回答

胡说叔叔

它实际上不打印空白,但很可能是值5的ASCII字符,它是不可打印的(或不可见的)。有一些隐形ASCII字符码,它们中的大多数都低于32,这实际上是空白。你必须皈依aa到unsigned int若要输出数字值,请执行以下操作:ostream& operator<<(ostream&, unsigned char)尝试输出可见字符值。uint8_t&nbsp;aa=5;cout&nbsp;<<&nbsp;"value&nbsp;is&nbsp;"&nbsp;<<&nbsp;unsigned(aa)&nbsp;<<&nbsp;endl;

慕田峪7331174

uint8_t很可能是typedef为unsigned char..这个ostream类有一个特殊的重载unsigned char,即它用数字5打印字符,这是不可打印的,因此空间。
打开App,查看更多内容
随时随地看视频慕课网APP