解析数学表达式的库-exprtk

时间:2020-04-28 19:28:39   收藏:0   阅读:432

github传送门:https://github.com/ArashPartow/exprtk

网站上有很多介绍,这里先使用最简单的方法。

将exprtk.hpp加入到项目中就可以了,然后包含这个头文件。

常规表达式:

#include <iostream>
#include "exprtk.hpp"
using namespace std;
double eval(string s)
{
	exprtk::expression<double> expr;
	exprtk::parser<double> p;
	p.compile(s,expr);
	return expr.value();
}

int main(int argc,char** argv)
{
	if(argc!=2)
	{
		cout<<"Usage:"<<argv[1]<<" \"expression\""<<endl;
		return -1;
	}
	cout<<argv[1]<<"="<<eval(argv[1])<<endl;
   	
	return 0;
}

  编译运行测试: 

技术分享图片

对比了一下第二个计算的结果:

技术分享图片

使用这个库,写一个图形科学计算器,岂不是分分钟的事情?可能最主要的工作被沦落为拖控件和界面设计了……

当然这只是这个应用的冰山一角,实际上,还有更高级更强大的功能,例如支持带变量的表达式等,感兴趣的话可以摸索试试。

原文:https://www.cnblogs.com/castor-xu/p/12796302.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!