私は Qt を使用しておりunsigned char *bytePointer
、現在のバイトの数値を出力したいと考えています。以下は私のコードです。これは、コンピューターに接続されたマシンから受信した連続バイトの int 値と 16 進値を提供することを目的としています。
int byteHex=0;
byteHex = (int)*bytePointer;
qDebug << "\n int: " //this is the main issue here.
<< *bytePointer;
std::cout << " (hex: "
<< std::hex
<< byteHex
<< ")\n";
}
これにより完璧な結果が得られ、実際の数値が得られますが、このコードは API に入り、qDebug などの Qt 専用関数は使用したくありません。だから私がこれを試すとき:
int byteHex=0;
byteHex = (int)*bytePointer;
std::cout << "\n int: " //I changed qDebug to std::cout
<< *bytePointer;
std::cout << " (hex: "
<< std::hex
<< byteHex
<< ")\n";
}
出力は 16 進値を完全に返しますが、int 値は記号を返します (☺、└、§ のようなものをいくつか挙げます)。
私の質問は: どうすれば とstd::cout
同じ出力を得ることができqDebug
ますか?
編集:何らかの理由で、シンボルは特定の Qt 設定でのみ発生します。なぜそうなったのかはわかりませんが、現在は修正されています。