我有一个C ++代码,我编译成一个运行得很好的Windows可执行文件。当我运行它时,会弹出一个控制台,并要求用户输入一个字符串(C ++脚本实际上需要一个QString)。我的C ++脚本中等待用户输入的一行是:
cout << "OTHER STUFF TO PRINT OUT" << endl;
cin >> input; //input is a QString here
cout << input.toStdString() << flush;
我试图用Python子进程运行这个可执行文件而我无法接受输入字符串。这是我的python脚本的样子:
proc = subprocess.Popen(["file.exe"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=FULL_PATH)
for line in proc.stdout: print line
proc.stdin.write("My string")
proc.stdin.flush()
print proc.stdout.readline()
Python脚本正确运行(即输出正确的东西),直到它命中write语句并挂起。我已经尝试了上述写语句的许多不同变体(例如,沟通,追加&#34; \ n&#34;到Mystring等)无济于事,所以我伸手去寻求帮助。我已经审查了这个网站也没有运气。