У меня есть простая программа на С++, которую я пытаюсь выполнить через python script. (Я очень новичок в написании сценариев), и у меня проблемы с чтением выходных данных через трубу. Из того, что я видел, похоже, что readline() не будет работать без EOF, но я хочу иметь возможность читать в середине программы и отвечать script на то, что выводится. Вместо чтения вывода он просто зависает python script:
#!/usr/bin/env python
import subprocess
def callRandomNumber():
    print "Running the random guesser"
    rng=subprocess.Popen("./randomNumber", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
    i=50
    rng.stdin.write("%d\n" % i)
    output=rng.stdout.readline()
    output=rng.stdout.readline()
callRandomNumber()
и файл С++, который генерирует случайное число от одного до 100, затем проверяет догадывание пользователей, пока они не угадают правильно
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
  cout<<"This program generates a random number from 1 to 100 and asks the user to enter guesses until they succuessfully guess the number.  It then tells the user how many guesses it took them"<<endl;
  srand(time(NULL));
  int num=rand()%100;
  int guessCount=0;
  int guess=-1;
  cout<<"Please enter a number:  ";
  cin>>guess;
  while(guess!=num){
    if(guess>num){cout<<"That guess is too high.  Please guess again:  ";}
    else{cout<<"That guess is too low.  Please guess again:  ";}
    cin>>guess;
    guessCount++;
  }
  cout<<"Congratulations!  You solved it in "<<guessCount<<" guesses!"<<endl;
  return 0;
}
конечная цель состоит в том, чтобы script решить проблему с двоичным поиском, но на данный момент я просто хочу иметь возможность читать строку, не будучи концом файла
