gpt4 book ai didi

c++ - std::cout 给出与 qDebug 不同的输出

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:12 25 4
gpt4 key购买 nike

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

}

输出确实给出了完美的十六进制值,但是 int 值返回符号(如 ☺、└、§,仅举几例)。

我的问题是:如何让 std::cout 提供与 qDebug 相同的输出?

编辑:由于某种原因,符号只出现在特定的 Qt 设置中。我不知道为什么会这样,但现在已经修好了。

最佳答案

正如其他人在评论中指出的那样,您将输出更改为十六进制,但实际上并没有将其设置回此处:

std::cout << " (hex:  "
<< std::hex
<< byteHex
<< ")\n";

之后你需要应用这个:

std::cout << std::dec;

关于c++ - std::cout 给出与 qDebug 不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27317951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com