C,Python,C ++或Javascript中的答案将非常感谢。 我读了几本书,做了所有的例子。现在我想写一个简单的程序。 但是,我已经遇到了以下障碍:
我的目的是从用户那里得到一个等式并将其保存在变量中, 例如:
-3*X+4 or pow(2,(sin(cos(x))/5)) > [In valid C Math syntax]
然后计算某个X值的给定表达式。 像这样:
printf("%g", UserFunction(3.2)) // Input 3.2 for X in User's Function and Print Result
有什么想法吗?对于我的生活,我无法弄清楚这一点。令我沮丧的是,解决方案可能只是一个非常简单的解决方案。提前谢谢。
答案 0 :(得分:11)
在 C 中没有一种简单的方法可以做到这一点,但我认为muParser可能对您有用,它是用 C ++ 编写的,但是 C 绑定。 ExprTk也是一个选项,但看起来只是 C ++ ,从正面来看,它看起来更容易获得有趣的结果。
另一个选项可能是Expression Evaluation,它是Libav的一部分。它位于 C 中,eval.h标题对接口有一些很好的描述。
答案 1 :(得分:0)
在C,C ++或Java等编译语言中,没有简单的方法可以做到这一点 - 你基本上必须重写整个编译器(或者使用带解释器的外部库)。这在像Python和Javascript这样的“脚本”语言中是微不足道的,它们具有在运行时评估表达式的函数(通常称为“eval()”)。这个函数通常很危险,因为它也可以执行带副作用的调用函数。
答案 2 :(得分:0)
Ffmpeg / libav有一个很好的简单函数求值程序,可以使用。