次のコードは、標準入力を標準出力にエコーするだけです。このようにプログラムを実行する./a.out
と、何でも入力でき、プログラムは正常に動作します。ただし、このように実行すると./a.out < input.txt
、の内容に関係なく、無限ループが発生しinput.txt
ます。
#include <iostream>
using namespace std;
int main() {
string input;
while (true) {
cout << "Type your input: ";
getline(cin, input);
cout << input << endl;
}
return 0;
}
私は何が間違っているのですか?
編集:明確にするために、入力ファイルからの入力が終了した後、getlineはstdinからの追加の入力を待つことを期待しています。代わりに、何もないときに読み続けます。