2015-11-07 106 views
2

如果我将数字2存储在uint8_t类型中并尝试打印它,我什么也得不到。当然,一个8位整数可以存储数字2.我错过了什么?为什么我不能在uint8_t类型中存储一个小整数?

示例代码:

#include <iostream> 
#include <cstdint> 

int main() { 
    std::uint8_t x = 2; 
    std::cout << "x = " << x << "\n"; 
} 

输出:

x = 
+0

这个程序的行为如同你所说的,这个确切的程序? –

+0

我缺少#include 我已经在上面添加了。除此之外,是的。 – user17112

回答

8

uint8_t通常是一个typedef为unsigned char,和将被打印为字符。

2虽然是一些不可打印的字符值,所以你没有得到任何有意义的输出。

您可以使用+x将x提升为一个整数,并将其打印。

+0

可以用gcc和clang确认:[demo](http://coliru.stacked-crooked.com/a/97165e443ff64103) – Alejandro

相关问题