使用 C++ 创建计算器

use C++ to create a calculator

我想用C++做一个计算器,输入一个表达式,计算出结果。

例如,

输入

(5.2+4)*ln3.4+sin3

输出

11.39985

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

使用 exprtk 等库。

我假设你是一个十足的菜鸟,这导致我建议你总是 Google 一个库来解决你的问题。

这实际上比一开始看起来要难得多,我是根据经验说的。

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

你还需要知道一些关于 lexers, and learn how to create tokens 的理论,我不会在那里问。

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