uint8显示奇怪的字符

时间:2010-09-04 10:23:43

标签: c++ visual-c++

我已经声明了一个uint8变量,当打印出它的值时,我会得到笑脸和白色空格。它不应该显示整数值吗?

2 个答案:

答案 0 :(得分:13)

我打赌uint8是系统标头中typedef的{​​{1}}。然后unsigned char将打印符号而不是整数值,其中std::cout << u的类型为u。 尝试

uint8

std::cout << static_cast< int >( u );

打印数值。

答案 1 :(得分:0)

这一切都取决于你如何打印出来的价值。对于cout,请尝试cout << (long unsigned int)var;,对于printf,您可以尝试使用%lu格式说明符。但是,就像usta提到的那样,uint8可能被定义或者将typedef为其他东西,因为它不是ISO C ++类型。还有可能uint8unsigned long int(通用)或unsigned __int64(特定于MS平台)的类型定义,而MSVC ++编译器只是进行了错误的隐式转换。在不知道uint8被定义为什么的情况下,很难说清楚。