我正在使用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