我正在使用Qt,並且我有一個unsigned char *bytePointer
並且想要打印出當前字節的數字值。下面是我的代碼,這是爲了給INT-值和連續字節的十六進制值,我從連接到計算機的機器接收:std :: cout給出不同的輸出qDebug
int byteHex=0;
byteHex = (int)*bytePointer;
qDebug << "\n int: " //this is the main issue here.
<< *bytePointer;
std::cout << " (hex: "
<< std::hex
<< byteHex
<< ")\n";
}
這給了完美的結果,我也得到實際數字,但是這個代碼將進入一個API,我不想使用qt-only函數,比如qDebug。所以,當我試試這個:
int byteHex=0;
byteHex = (int)*bytePointer;
std::cout << "\n int: " //I changed qDebug to std::cout
<< *bytePointer;
std::cout << " (hex: "
<< std::hex
<< byteHex
<< ")\n";
}
輸出確實非常給十六進制值,但是整型值返回符號(如☺,└,§,要列出幾個)。
我的問題是:我如何獲得std::cout
以提供與qDebug
相同的輸出?
編輯:由於某些原因符號只出現在某個Qt設置。我不知道爲什麼會發生,但現在已經修復。
注意,這將工作一次,然後'cout'是停留在十六進制模式,因爲你不復位。 – 2014-12-05 14:34:51
它是一個Qt應用程序嗎?如果是的話,爲什麼不qDebug?如果沒有,爲什麼你更早使用它? – lpapp 2014-12-05 14:38:10
@SebastianRedl實際上是這個問題。之後我只是沒有添加std :: dec。我很尷尬,但謝謝你! – 2014-12-05 14:39:27