c++ cout 不能正常打印uint8_t
生活随笔
收集整理的這篇文章主要介紹了
c++ cout 不能正常打印uint8_t
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題現象
編譯運行以下代碼
/************************************************************************* > File Name: cout_uint8.cpp > Author: ce39906 > Mail: ce39906@163.com > Created Time: 2018-06-29 13:50:53************************************************************************/ #include <cstdint> #include <iostream>int main() { std::uint8_t uint8_num = 10; std::cout << "uint8_t num is " << uint8_num << std::endl; return 0; }編譯
g++ cout_uint8.cpp --std=c++11 -o cout_uint8運行得到的輸出如下
cout沒有正確打印數字10
產生這種情況的原因是很多c++ 實現中 uint8_t 是 unsigned char 的 typedef。因此cout 實際調用的函數是 ostream& operator<<(ostream&, unsigned char) ,因此實際的執行結果是打印對應的ASCII 碼字符,而其字符是不可以打印的。
解決方案
將uint8_t 轉化為unsigned 類型
使用一元運算符+(和- 運算符對應)
測試代碼如下
運行結果如下
可見使用+運算符的原理也是進行類型轉換(把uint8_t 轉為 int)
總結
以上是生活随笔為你收集整理的c++ cout 不能正常打印uint8_t的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 金蝶如何用计算机,怎么把金蝶的报表另存在
- 下一篇: C++ uint8_t