C でファイルの終わり (EOF) まで標準入力からデータを読み取る
C でユーザー入力を操作する場合、多くの場合、これが必要になります。ファイルの終わり (EOF) に達するまで、標準入力 (cin) からデータを読み取ります。 EOF まで読み取ろうとする場合、考慮すべき特定の制限とアプローチがあります。
よくある誤解の 1 つは、cin.get(input, ' ') を使用して EOF または null 文字 (' ') までデータを読み取るということです。が発生すると、望ましい結果が得られる可能性があります。ただし、「 」は EOF を表しません。このアプローチでは、EOF または「 」のどちらかが先に起こるまで読み取ります。
EOF まで cin からデータを読み取るには、ループを使用する必要があります。 std::getline() 関数は、この目的に効果的な方法を提供します。
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
std::getline() は、cin から入力を読み取り、指定された文字列変数に格納します。デフォルトの区切り文字は改行文字。行が正常に読み取られたかどうかを示すブール値を返します。 EOF に遭遇すると、std::getline() は false を返し、ループが終了します。
EOF まで読み取るときにループが必要になるのは制限のように思えるかもしれませんが、C ではそのことを覚えておくことが重要です。 , EOFはキャラクターそのものではありません。そのため、単純に std::getline() を 1 回呼び出して EOF まですべてのデータを読み取ることは不可能です。
以上がC で EOF まで標準入力からデータを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。