標準入力ストリーム (stdin) のファイルの終わり (EOF)
プログラムの入力ソースとして stdin を使用する場合、当然のことながら、ファイルの終わり (EOF) 表示をサポートしているかどうか疑問に思います。標準入力の性質は、その構成方法によって異なります。
ファイルからの入力による標準入力
標準入力がファイルからリダイレクトされる場合、本質的に EOF があります。マークは、通常のファイル ストリームと同様です。これは、ファイルには定義されたエンドポイントがあり、読み取り操作がファイルの終わりに達すると EOF 条件が発生するためです。
コンソールからの標準入力
ただし、対話モードとして知られるコンソールからの stdin 入力には、本質的に EOF インジケーターがありません。これは、コンソール入力は通常、ユーザーが入力した文字の連続的なストリームであるためです。
コンソール モードでの EOF のシミュレート
コンソール モードで EOF をシミュレートするには、プラットフォーム-特定のキーの組み合わせを使用できます:
これらのキーの組み合わせを押すと、プログラムは入力が最後に到達したかのように処理しました。
EOF を標準入力に手動で追加する
前述したように、コンソールからの標準入力は無限ストリームとみなされます。 EOF を手動で追加するには、Ctrl D または Ctrl Z キーの組み合わせを使用して明示的に指定する必要があります。
fread 関数または read 関数を使用した解決策
提供されたコード内fread または read を使用してサンプルを作成すると、ループは EOF に到達するまで無限に継続します。このシナリオで EOF 条件を手動で追加するには、次の方法を使用します。 0) {
}
// Read and process data from stdinif (c == -1) {
}
// Handle EOF conditionこのようにすると、ユーザーが EOF の組み合わせを押したときにループを終了でき、それに応じてプログラムが入力の終わりを処理できるようになります。
以上がインタラクティブ モードの場合、標準入力ストリーム (stdin) でファイルの終わり (EOF) 信号をシミュレートするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。