ループなしで EOF まで標準入力から入力をキャプチャ
ファイルの終わり (EOF) まで標準入力から入力を読み取るのが一般的ですCプログラミングにおけるタスク。通常、これを実現するためにループが使用されますが、特定の状況では、非ループのアプローチが望ましい場合があります。
ループを使用しないソリューション
残念ながら、単一のソリューションはありません。 、標準入力から EOF まで入力を読み取ることができる C の非ループ関数。ただし、入力演算子と C 文字列操作を組み合わせることで回避策が得られます。
char input[1000]; cin.getline(input, 1000); while (cin.eof() == false) { cout << input << endl; cin.getline(input, 1000); }
このアプローチでは、cin.getline() を使用して、標準入力から入力配列に最大 1000 文字を読み取ります。次に、cin.eof() を使用して EOF に達したかどうかを確認します。そうでない場合は、入力をコンソールに出力し、EOF に達するまでプロセスを繰り返します。
最適なループベースのアプローチ
非ループ ソリューションが存在しない場合実現可能かどうかにかかわらず、ループベースの最良のアプローチは std::getline() 関数を使用することです。
string line; while (getline(cin, line)) { // Process the line }
このアプローチでは、ファイルの終わりまで getline() を使用して入力行を読み取るループに入ります。に達します。 getline() は、入力が失敗するか EOF に遭遇すると false を返し、ループが終了します。
以上が明示的なループを使用せずに C で EOF まで stdin を読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。