ホームページ > バックエンド開発 > C++ > CでEOFまで標準入力からすべてのデータを読み取る方法は?

CでEOFまで標準入力からすべてのデータを読み取る方法は?

Barbara Streisand
リリース: 2024-11-28 21:36:12
オリジナル
533 人が閲覧しました

How to Read All Data from Standard Input Until EOF in C  ?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート