用户输入表达式,检查表达式合法性,若非法提示并要求重新输入或者直接退出;如果合法,则提示并等待用户输入变量值,用户输入后,检查值的合法性,当一切正常时,你有了一个没有未知数的表达式,你就fopen创建一个.c文件,内容为:
#include<xxx>
int main()
{
double x = 你的表达式;
printf("%f\n", x);
return 0;
}
调用fork,在子进程中execl("gcc", ......)编译刚刚的c文件,再execl(....)运行刚刚得到的可执行二进制文件;父进程简单地等待子进程的返回即可
不知道我说清楚了没有
【 在 anything1999 的大作中提到: 】
: 实际上不是求值的事情,而是把字符串变成表达式(lambda或者std::function),不是立即求值,而是运行时输入x进去再求表达式的值。比如3+x,运行时给出x=10,也可能给出100, 99都行。
: 不知道我讲明白没有。
--
FROM 119.114.248.*