2010-08-17 87 views
2

我正在尝试在python中编写程序以在C++中运行程序。它不是正确的,所以我做了我所能做到的最基本的版本。 C++程序仅从stdin中获取一个字符串,然后将其打印出来。 Python的代码编写如下:Python和C++集成。 Python将字符串打印为多行

import popen2, string, StringIO 

fin, fout = popen2.popen2("PyTest") 
msg = ur"Hello, world!" 
print msg 
fout.write(msg) 
print fin.readline() 

输出,但是看起来是这样的:

Hello, world! 
Hello, 

我一直看到的问题是,空间似乎掰开字符串,即使它是一个字符串文字。我不确定在这里做什么。有什么建议么?

+4

你为什么不使用'subprocess.Popen'? – 2010-08-17 20:56:29

+1

C++程序是否刷新stdout? – unutbu 2010-08-17 20:59:13

+1

当你自己调用C++程序时,它是否返回所需的输出?即,'./PyTest Hello,world!'返回'Hello,world!'? – Andrew 2010-08-17 21:06:25

回答

2

在C++中,std::cin >> mystring使用空格作为分隔符。如果您想要一次吞噬整条线,请使用std::getline