【问题标题】:Is there a work around for invalid octal digit in an array?是否有解决数组中无效八进制数字的方法?
【发布时间】:2012-04-18 17:20:41
【问题描述】:

我正在尝试创建一个数组来保存一天中的小时数,以便我可以循环遍历它以获得时钟。

我有:

int hourArray[24] = {12, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 01, 02,
                     03, 04, 05, 06, 07, 08, 09, 10, 11};

我按顺序收到以下数字的错误08, 09, 08, 09

它告诉我:

错误:八进制数无效

我以前从来没有遇到过这种情况,我想知道有没有办法解决它?

【问题讨论】:

  • 0 开头的文字被编译器认为是八进制,而是用空格对齐。

标签: c++ arrays compiler-errors octal


【解决方案1】:

当然:当你不是八进制时不要使用前导 0:

int hourArray[24] = {12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};

不要忘记您只是在数组中指定 数字 - 而不是数字的任何特定文本表示。 (所以如果你写 012 相当于写 10 - 你最终会得到相同的数字。)如果你想在后面用前导 0 格式化这些数字,那就完全不同了代码方面。

【讨论】:

  • 如果你想要数字零但不是八进制怎么办?
  • @KerrekSB :只要 0 而不是 00 就可以了
猜你喜欢
  • 2013-01-27
  • 2012-01-17
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2011-08-21
  • 1970-01-01
  • 2013-09-10
相关资源
最近更新 更多