【问题标题】:qDebug prints a wrong numberqDebug 打印错误的数字
【发布时间】:2017-06-05 12:30:31
【问题描述】:

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

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

但结果是:

"1537"

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

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

结果正确:

"3001"

为什么会这样?

我正在使用 Qt 5.3。

【问题讨论】:

标签: c++ qt qstring qdebug


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-07
      • 2016-03-25
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      相关资源
      最近更新 更多