0

我正在尝试使用 java.lang.process 附加 C++ 可执行文件。构建 exec 的代码如下:

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 传递值。如果描述有任何问题,请告诉我。谢谢,托尔。

4

1 回答 1

1

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

while ( std::cin && command != "exit" )
{
    std::cin >> command;
}
于 2012-07-13T14:21:51.670 回答