【问题标题】:Possible work around "Invalid Octal Digit" in char when typing Alt Keys键入 Alt 键时可能会解决 char 中的“无效八进制数字”
【发布时间】:2013-01-27 08:15:24
【问题描述】:

我正在编写一个执行二次公式的程序。我唯一的问题是程序的实际格式。允许我输入加减号和平方根符号的 alt 键给我带来了一些问题。

问题存在于内部

cout<< 0-b << char(241) << char(251) << char(0178);

键入平方符号 (²) 的最后一个字符会报告无效的八进制数字错误。有没有办法解决这个问题,或者我必须通过简单地写“x^2”来满足?

【问题讨论】:

  • 8 不是八进制的有效数字。
  • 我会坚持x^2。错误来自char(0178)。以 0 开头的文字是八进制文字。

标签: c++ key alt octal


【解决方案1】:

您应该从0178 中删除前导0。数字常量的前导零会自动被视为八进制,8 不是有效的八进制数字。

此外,您所指的superscript-2 character十进制 178,U+00B2。另一种方法是在您的代码中使用'\xb2'

当然,您还必须确保解释该输出流的任何内容都知道您尝试输出的 Unicode 字符。这可能取决于您的终端程序或控制台。如果没有,你可能不得不求助于像(x^2) 这样的黑客,或者更糟糕的是,像这样的怪物:

      3     2
    3x  - 7x  + 42x - 1
y = -------------------
            12

【讨论】:

  • 感谢您的回复。虽然我不太确定如何实现它。例如 "char("\u00B2")" 没有呈现正确的符号(顺便说一下,我在我的 IDE 中使用 Visual Studio 2012 Express)。而“char(253)”给了我正确的格式。非常感谢你,因为如果没有这个回复,我会知道我试图找到的符号是下标 2,我不会偶然发现正确的代码。编辑:哈哈,天哪,怪物看起来很搞笑。我从没想过我会在二次方程中找到幽默。
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 2018-09-16
  • 2012-06-25
  • 2010-12-22
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多