String 我需要知道如何使用popen调用程序bc,然后如何从字符串中给bc一个等式

String 我需要知道如何使用popen调用程序bc,然后如何从字符串中给bc一个等式,string,popen,solver,bc,String,Popen,Solver,Bc,我已经查阅了bc和popen的基础知识好几个小时了,没有什么能确切地告诉我如何在一个脚本中同时使用它们。我在这里问这个问题,不是因为我想得到一些鼓励和保证,解决这个问题将有助于我解决它。我需要知道这些具体的事情,因为我在任何地方都找不到这些信息,而且我也没有时间、精力或耐心将我的头撞在墙上几个小时 我正在尝试编写一个代码,可以将一个方程作为字符串接收,而这个方程是随机的,所以最好的解决方法是将它交给bc。我也知道它将是一种bc可以理解的字符串格式 到目前为止,我有: { FILE *eq; ch

我已经查阅了bc和popen的基础知识好几个小时了,没有什么能确切地告诉我如何在一个脚本中同时使用它们。我在这里问这个问题,不是因为我想得到一些鼓励和保证,解决这个问题将有助于我解决它。我需要知道这些具体的事情,因为我在任何地方都找不到这些信息,而且我也没有时间、精力或耐心将我的头撞在墙上几个小时

我正在尝试编写一个代码,可以将一个方程作为字符串接收,而这个方程是随机的,所以最好的解决方法是将它交给bc。我也知道它将是一种bc可以理解的字符串格式

到目前为止,我有:

{
FILE *eq;
char eqstr[256];
char cmd[256];

eq = popen("bc *", "r");
if(eq == NULL)
{
exit(1);
}

while(fgets(eqstr, sizeof(eqstr), eq) != NULL)
{
strcpy(cmd, "echo '");
strcat(cmd, eqstr);
strcat(cmd, "' | bc");
}
pclose(eq);
return 0;
}
我需要它不是在终端中打印结果,而是将结果返回给代码,以便与正确答案进行比较。测试的说明和方法非常模糊,因此我不知道如何检查答案是否正确。这是一个更大的代码中的一小部分,它让我非常悲伤


如果你不能向我展示一个解决我问题的示例代码,至少推荐一个我可以查看的网站,该网站可能有答案。

popen
是单向的——你可以将数据传递给孩子,也可以将数据读回。你不能两者兼而有之。如果您想进行B方向通信,则必须执行其他操作,使用文件或手动创建管道和分叉。
popen
是单向的,您可以将数据传递给子级,也可以将数据读回。你不能两者兼而有之。如果您想进行B方向的通信,您必须执行其他操作,使用文件或手动创建管道和分叉。