質問: C++で下記のことで困っています。 入力が終わったら、while文をぬけたいのですがどうしたらよいのでしょうか。 インプット ----- 1 3 8 9 期待する挙動 ------ g++でコンパイルして、./a.outとしてコンソール上で実行。 9を入力してエンターを押したら下記のように出力されるプログラムが終了すること。 1 3 8 9 困っていること ------- 9を入力してエンターを押しても、まだ入力を受け付けた状態になってしまい、whileループを抜けられない コード --- ``` #include using namespace std; int main() { string s; while(cin >> s) { cout << s << endl; } } ```
回答: プログラムに入力が終了したこと(EOF: end of file)を知らせる必要があります。 Windowsの場合、`Control+z`を入力するとEOFになります。 MacやLinuxの場合は、`Control+d`を入力するとEOFになります。 参考: How to enter the value of EOF in the terminal