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 値が自動的に取得され、「制御を 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 に答える