プログラミングにおける一般的な入力ソースは、ユーザーのキーボードから入力を読み取る標準入力ストリーム (stdin) です。 。ただし、ユーザーがいつデータの入力を終了し、ファイルの終わり (EOF) に到達したかを判断するのは難しい場合があります。
標準入力には EOF がありますか?
デフォルトでは、stdin には本質的に EOF がありません。これは、stdin からのプログラムの読み取りが無期限に継続され、ユーザーからのさらなる入力を待機することを意味します。
EOF を stdin に追加
EOF を手動でシミュレートする必要がある場合標準入力では、次の 2 つの一般的な方法があります:
例:
次コード スニペットは 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 サイトの他の関連記事を参照してください。