qDebug打印错误的数字

时间:2017-01-20 13:36:28

标签: c++ qt qstring qdebug

我只想尝试使用qDebug打印一个数字,如下所示:

qDebug() << QString::number(03001);

但结果是:

"1537"

如果我尝试在没有第一个零的情况下进行打印:

qDebug() << QString::number(3001);

结果是正确的:

"3001"

为什么会这样?

我正在使用Qt 5.3。

2 个答案:

答案 0 :(得分:5)

前导零将使数字被解释为octal literal

  

octal-literal是数字零(0),后跟零个或多个八进制数字(0,1,2,3,4,5,6,7)

所以这不是与qDebug相关的任何方式,而是与C ++解释integer constants的方式有关。

答案 1 :(得分:1)

03001是C ++中的八进制数。