【问题标题】:use C++ to create a calculator使用 C++ 创建一个计算器
【发布时间】:2020-02-03 18:37:09
【问题描述】:

我想用C++做一个计算器,这样我就可以输入表达式并计算结果了。

例如,

输入

(5.2+4)*ln3.4+sin3

输出

11.39985

问题是我不知道如何将数字和运算符与字符串分开。因为操作数和数字的长度不同。 有什么好办法吗?

【问题讨论】:

  • 我只想说,您要解决的问题并不像您认为的那样微不足道。你必须知道如何进行解析和词法分析,这对于一个简单的答案来说太过分了。
  • 您只需在窗口顶部的搜索框中输入"[c++] calculator" 即可清除许多想法和有用的提示。

标签: c++ undefined


【解决方案1】:

这实际上是一个比最初看起来要困难得多的问题,我是根据经验说的。

如果您想要一个如何完全从头开始的示例,请here is a question where I posted an example I was working on。它当然不完整,但链接到关于 Pratt 解析的一篇很棒的 Java 文章(实际上,可能是最好的文章),在我看来,这是解析表达式的最佳方式。我的问题是我试图将在那里找到的 Java 代码移植到 C++。你可以看到我在那里遇到的问题。

您还需要了解lexers 的一些理论,并学习如何创建tokens,我不会在那里问。

关键是,如果你想从头开始,或者即使你想知道正在发生的事情的理论,你还有很多研究要做,但我当然鼓励你尝试一下,如果你没有截止日期。

【讨论】:

    【解决方案2】:

    使用诸如exprtk 之类的库。

    我会假设你是一个完全的菜鸟,这导致我建议你总是在谷歌上找到一个可以解决你问题的库。

    【讨论】:

      猜你喜欢
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多