1
我只是想打印使用qDebug
一个数字如下:qDebug打印错号码
qDebug() << QString::number(03001);
但结果是:
"1537"
如果我尝试没有第一个零打印:
qDebug() << QString::number(3001);
的结果是正确的:
"3001"
为什么会发生?
我正在使用Qt 5.3。
我只是想打印使用qDebug
一个数字如下:qDebug打印错号码
qDebug() << QString::number(03001);
但结果是:
"1537"
如果我尝试没有第一个零打印:
qDebug() << QString::number(3001);
的结果是正确的:
"3001"
为什么会发生?
我正在使用Qt 5.3。
前导零将使该数字被解释为octal literal。
八进制文字是数字零(0),接着是零个或更多八进制数字(0,1,2,3,4,5,6,7)
因此,这是不通过与qDebug相关的任何手段,但以C++解释integer constants的方式。
03001是C++中的八进制数。
因为前导零表示八进制数 - 请参阅[参考整数文字](http://en.cppreference.com/w/cpp/language/integer_literal)以获取更多信息 – UnholySheep