C でファイルの終わりまで標準入力からデータを読み取る
C でユーザー入力から直接データを操作する場合、多くの場合、ファイルの終わり (EOF) に達するまですべてのデータを読み取ることが望ましいです。 cin.get() 関数を使用すると、指定された文字が検出されるまでデータを読み取ることができます。ただし、終了文字として「 」を使用することは、実際には EOF を表していないため、最適ではない可能性があります。
データ抽出にループを使用する
最も効果的なソリューションEOF までのデータの読み取りにはループが使用されます。 std::getline() 関数は、この目的に特に適しています。デフォルトでは、getline() は改行文字が見つかるまでデータを読み取ります。ただし、代替の終了文字を指定することもできます。
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
この例では、getline() はファイルの終わりに達するまでデータの各行を読み取ります。 getline() がそれ以上のデータの読み取りに失敗すると、ループは終了します。これは、EOF が検出されたことを示します。
代替終了文字
ただし、EOF は読み取り可能な文字ではありません。直接指定する場合は、センチネル値を使用して EOF を表すことができます。たとえば、変数を特定の値に初期化し、その値が検出されるまでデータを読み取ることができます。
const std::string EOF_MARKER = "EOF"; std::string line; while (getline(std::cin, line)) { if (line == EOF_MARKER) break; std::cout << line << std::endl; }
このアプローチにより、独自のファイル終了インジケーターを定義できるため、より高い柔軟性が得られます。データ処理。
以上がCでEOFまで標準入力からすべてのデータを読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。