我正在使用 Qt,我有一个unsigned char *bytePointer
并且想要打印出当前字节的数值。下面是我的代码,它旨在给出我从连接到计算机的机器接收到的连续字节的 int 值和十六进制值:
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 的函数,例如 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";
}
输出确实完美地给出了十六进制值,但是 int 值返回符号(如 ☺、└、§ 等)。
我的问题是:我怎样才能std::cout
给出与 相同的输出qDebug
?
编辑:由于某种原因,这些符号只出现在特定的 Qt 设置中。我不知道为什么会这样,但现在已经解决了。