我的代碼中可能有一個愚蠢的錯誤。我已經定義了以下變量:將unsigned char傳給cout時意外的輸出
unsigned char uEngines;
unsigned short uActiveEngines
unsigned short uDed
....
和其他幾個。
在代碼中的其他地方,我試圖在gdb中打印結構並得到以下結果。
$6 = {uEngines = 12 '\f', uActiveEngines = 4095 .....
1)我試圖輸出使用cout
的uEngines
價值,但它只能輸出一個空格:
cout <<strVariable->uEngines;
2)是什麼'\ F'意味着gdb的輸出?
我在做數據類型錯誤嗎?
你想把'uEngines'的值作爲一個整數還是一個字符?如果你想把它作爲一個數字,你應該寫'cout <<(int)uEngines;' – Shahbaz 2012-03-29 12:52:12
@softghost他需要'unsigned char',因爲引擎的數量永遠不會是負數。 – 2012-03-29 13:53:11
@softghost:你能否提供該報價的來源? 'signed char'和'unsigned char'是保證簽名的兩個最小整數數據類型,它們與'char'不同(例如,你可以/應該重載所有三個'signed char','unsigned char', 'char') – 2012-03-29 14:22:53