キーボードからの入力を受け入れるプログラムがあるか、あるいは次のようなファイルからのリダイレクトされた入力を受け入れるプログラムがあるとします。
#include <iostream>
using namespace std;
int main() {
string str;
while (getline(cin, str)) {
if(str.compare("exit") == 0)
return 0;
}
return 0;
}
この実装では、キーボード入力を使用するプログラムのインスタンスは「exit」と入力すると終了し、ファイル入力を使用するプログラムのインスタンスはEOFで終了することを期待しています。
ファイル入力を使用するプログラムのインスタンスが実行されている場合、終了するのではなく、EOFに到達したときにキーボード入力を許可するような機能を実装したいと思います。ファイル入力が終了するとfalseが返されるため、whileループの条件としてこれが不可能であることを示唆する調査を行いました。また、キーボードを受け入れたいことgetline
を伝える方法がわかりません。cin
その時の入力。
cin
では、ファイルの実行中に、ファイル入力の受け入れから代わりにキーボード入力の受け入れに切り替えることは可能ですか?そうでない場合、その理由を説明していただけますか?