C++简单运算(+,-,/,*)评估类
我正在寻找一个可以合并到我正在开发的项目中的 C++ 类。 我需要的功能是将字符串操作评估为数字形式:例如“2 + 3*7”应该评估为23。
我确实意识到我所要求的是一种解释器,并且有工具可以构建它们,由于我的计算机科学背景很差,所以如果您能给我指点现成的课程,我将不胜感激。
I am looking for a C++ class I can incorporate into a project I am working on.
the functionality I need is evaluation of string operations to numerical form: for example "2 + 3*7" should evaluate to 23.
I do realize what I am asking is a kind of an interpreter, and that there are tools to build them, by my background in CS is very poor so I would appreciate if you can point me to a ready made class .
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这应该完全符合你的要求。您可以在以下位置进行实时测试: http://www.wowpanda.net/calc
它使用 逆波兰表示法并支持:
编辑:您可能需要删除底部的 Abs();根据我的需要,0 - 5 应该是 5 而不是 -5!
This should do exactly what you want. You can test it live at: http://www.wowpanda.net/calc
It uses Reverse Polish Notation and supports:
EDIT: you'll probably want to remove the Abs() at the bottom; for my needs 0 - 5 should be 5 and not -5!
boost::spirit 附带了一个计算器示例,可以满足您的需要:
http://www.boost.org/ doc/libs/1_33_1/libs/spirit/example/fundamental/ast_calc.cpp
boost::spirit comes with a calculator example which would do what you need:
http://www.boost.org/doc/libs/1_33_1/libs/spirit/example/fundamental/ast_calc.cpp
muParser 是用 C++ 编写的,可以满足您的需要。
muParser is written in C++ and does just what you need.
《C++ in Action》除了是一本关于 C++ 的好书之外,还包括一个功能齐全的计算器,可以满足您的需要(实际上还有更多)。这本书可以在线免费获得
C++ in Action, in addition to being a great book on C++, includes a fully working calculator, doing what you need (and actually much more). And the book is available for free online