我一直想知道如何在另一个程序中运行程序,其中主进程可以输出到辅助进程的stdin,并将第二个进程输出到主进程的输入。
我最接近找到一个关于这个想法的术语是管道和叉子,但我还没有得到我见过的例子。我只看到过同一个程序使用管道重新启动的程序。此外,所有这些示例都假设程序员正在编写/可以访问这两个程序的源代码。
我希望能够以这种方式与已编译的程序进行交互。以下是我希望能够做到的一个例子:
这是"编译"程序 -
#include <iostream>;
using namespace std;
int main(){
int answer = 42;
int guess = 0;
do{
cout << "Guess a number..." << endl;
cin >> guess;
if(guess<answer)
cout << "Guess Higher!" << endl;
else if(guess>answer)
cout << "Guess Lower!" << endl;
}while(answer!=guess);
cout << "You win!";
return 0;
}
这是&#34;父母&#34;程序 -
#include <iostream>;
using namespace std;
int main(){
//Code executing and connecting the other program
//while cin/cout would be nice for keeping it clean, other methods of doing this are fine
//I used cin/cout as placeholders to try and make what I am asking clearer
String out;
cin >> out;//Load initial prompt
int high=100, low=0;
do{
cout << (high+mid)/2 << endl;
cin >> out;//Load response
if(out.compare("Guess Higher!"))
low = (high+low)/2;
else
high = (high+low)/2;
}while(out.compare("You win!")!=0);
return 0;
}
这里的想法是我的父母&#34;程序可以为我玩这个游戏。它会猜测,查看响应,使用一些逻辑来决定下一步做什么,猜测,重复直到它获胜。这个特殊的例子很没用,但是用另一个程序控制一个程序的一般想法有很多用处。这只是一个假想的演示,我希望能够做到。
感谢任何有足够的时间来抽出时间来帮忙的人。