2012-07-13 48 views
0

我想使用java.lang.process附加C++可执行文件。建立Exec中的代码是根据:附加到来自java进程的外部C++进程导致问题

int main(int, char**){ 

std::cout << "Starting Up. . . . . " << std::endl; 
std::string command; 

while (command != "exit") 
{ 
    std::cin >> command; 
} 

return 0; 
} 

调试时,我在过程中创建时发现,即将输入的std :: cin和预期价值的过程中停止,但下一次迭代需要先前的'命令'std :: cin值会自动执行,并继续迭代'while'循环,而不会将控制权返回给java进程。为什么在每次迭代时,C++可执行文件都不会停止在std :: cin中?我使用Process.getOutputStream()从java传递值。请让我知道是否有任何问题与描述。谢谢,Tor。

回答

1

最有可能的是,没有有效的输入或某种EOF被模拟。您应该检查输入是否有错误:

while (std::cin && command != "exit") 
{ 
    std::cin >> command; 
}