ホームページ  >  記事  >  バックエンド開発  >  標準入力 (stdin) で EOF をシミュレートするにはどうすればよいですか?

標準入力 (stdin) で EOF をシミュレートするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 23:29:29705ブラウズ

How Do You Simulate EOF on Standard Input (stdin)?

標準入力ストリーム (stdin) の EOF の決定

プログラミングにおける一般的な入力ソースは、ユーザーのキーボードから入力を読み取る標準入力ストリーム (stdin) です。 。ただし、ユーザーがいつデータの入力を終了し、ファイルの終わり (EOF) に到達したかを判断するのは難しい場合があります。

標準入力には EOF がありますか?

デフォルトでは、stdin には本質的に EOF がありません。これは、stdin からのプログラムの読み取りが無期限に継続され、ユーザーからのさらなる入力を待機することを意味します。

EOF を stdin に追加

EOF を手動でシミュレートする必要がある場合標準入力では、次の 2 つの一般的な方法があります:

  • Ctrl D (UNIX): UNIX ベースのシステムでは、Ctrl D を押すとファイルの終わりが通知されます。
  • Ctrl Z (Windows): Windows OS では、通常、Ctrl Z を押すと入力の終了を示します。

例:

次コード スニペットは fread を使用して標準入力から読み取り、Ctrl D を使用して EOF をチェックします:

<code class="c">#include <stdio.h>

int main() {
    char buffer[BUFSIZ];
    int c;
    
    while ((c = fread(buffer, sizeof(char), BUFSIZ, stdin)) > 0) {
        // Process input...
    }

    return 0;
}</code>

ユーザーが Ctrl D を押すと、fread() 関数はファイルの終わりを示す -1 を返します。これにより、while ループの終了がトリガーされます。

注:

上記で説明した EOF シミュレーション方法はシステムに依存しており、システム全体で一貫して機能しない可能性があることに注意することが重要です。すべてのプラットフォーム。

以上が標準入力 (stdin) で EOF をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。