Dav*_*ton 3 c++ python cout cin
我试图通过python控制一个简单的c ++程序.该程序通过提示用户输入来工作.提示不一定是endl终止.我想知道的是,如果有一种方法可以告诉python c ++程序不再生成输出并且已切换到请求输入.这是一个简单的例子:
C++
#include <iostream>
using namespace std;
int main()
{
    int x;
    cout << "Enter a number ";
    cin >> x;
    cout << x << " squared = " << x * x << endl;
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
#! /usr/bin/python
import subprocess, sys
dproc = subprocess.Popen('./y', stdin=subprocess.PIPE,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while (True) :
    dout = dproc.stdout.read(1)
    sys.stdout.write(dout)
    dproc.stdin.write("22\n")
Run Code Online (Sandbox Code Playgroud)
这种工作但写入dproc.stdin太多了.我正在寻找的是一种从dproc.stdout读取所有内容直到程序准备好输入然后写入dproc.stdout的方法.
如果可能的话,我想这样做,无需修改c ++代码.(但是,我试过在c ++方面玩缓冲,但似乎没有帮助)
感谢您的回复.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           613 次  |  
        
|   最近记录:  |