2017-01-20 51 views
1

我只是想打印使用qDebug一个数字如下:qDebug打印错号码

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

但结果是:

"1537" 

如果我尝试没有第一个零打印:

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

的结果是正确的:

"3001" 

为什么会发生?

我正在使用Qt 5.3。

+6

因为前导零表示八进制数 - 请参阅[参考整数文字](http://en.cppreference.com/w/cpp/language/integer_literal)以获取更多信息 – UnholySheep

回答

5

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

八进制文字是数字零(0),接着是零个或更多八进制数字(0,1,2,3,4,5,6,7)

因此,这是不通过与qDebug相关的任何手段,但以C++解释integer constants的方式。