我声明了一个uint8变量,当打印出其中的值时,我会得到笑脸和空格。它不应该显示整数值吗?
发布于 2010-09-04 18:37:16
我敢打赌,在您的系统头文件中,uint8是unsigned char的typedef。然后,std::cout << u将打印符号而不是整数值,其中u的类型为uint8。试一试
std::cout << static_cast< int >( u );或
std::cout << +u;将数值打印出来。
发布于 2010-09-04 19:01:35
这完全取决于您如何打印值。对于cout,可以尝试使用cout << (long unsigned int)var;;对于printf,可以尝试使用%lu格式说明符。但是,就像前面提到的usta一样,uint8很可能被定义或定义为其他类型,因为它不是一个ISO C++类型。也有可能是将uint8类型定义为unsigned long int (通用)或unsigned __int64 (特定于MS平台),而MSVC++编译器只是执行了错误的隐式转换。如果不知道uint8的定义是什么,就很难判断。
https://stackoverflow.com/questions/3641845
复制相似问题