控制第二个程序的stdin和stdout(管道/管道?)

时间:2014-09-25 16:33:02

标签: c++ pipe

我一直想知道如何在另一个程序中运行程序,其中主进程可以输出到辅助进程的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;程序可以为我玩这个游戏。它会猜测,查看响应,使用一些逻辑来决定下一步做什么,猜测,重复直到它获胜。这个特殊的例子很没用,但是用另一个程序控制一个程序的一般想法有很多用处。这只是一个假想的演示,我希望能够做到。

感谢任何有足够的时间来抽出时间来帮忙的人。

0 个答案:

没有答案