【发布时间】:2020-10-01 20:13:57
【问题描述】:
在 Python 中我有这样的机会,用一些东西写一个名为 s 的字符串,然后用 exec() 函数执行这个字符串中的代码:
s = input() # Something like 5*x**2-6
exec('def f(x):\n return ' + s)
print(f(5))
如何在 C++ 中做类似的事情? 在我的程序中,用户应该输入一些函数,线段并从该段中获取 x,其中 f(x) = 0。我完成了所有工作,但求解方程的函数 f(x) 只能是源代码里改了,当然不是很合适。
提前致谢!
【问题讨论】:
-
你所问的在 C++ 中根本不可能。代码需要预先编译,而 Python 是一种解释性语言。现在,如果您的问题是“我如何评估包含数学表达式的字符串”,那完全是另外一回事。
-
您必须编写一些评估函数来评估数学表达式。或者找一些为你做的图书馆。
-
这能回答你的问题吗? How to evaluate any given expression
-
您是否应该编写一个完整的 C++ 编译器?这是什么任务?