Maison > Article > développement back-end > Comment simuler un signal de fin de fichier (EOF) dans le flux d'entrée standard (stdin) lorsqu'il est en mode interactif ?
Fin de fichier (EOF) du flux d'entrée standard (stdin)
Lorsque vous utilisez stdin comme source d'entrée pour les programmes, il est naturel de je me demande s'il prend en charge une indication de fin de fichier (EOF). La nature de l'entrée standard varie en fonction de la façon dont elle est configurée.
stdin avec entrée à partir d'un fichier
Lorsque stdin est redirigé depuis un fichier, il a intrinsèquement un EOF marque, similaire aux flux de fichiers réguliers. En effet, les fichiers ont un point de terminaison défini et lorsque l'opération de lecture atteint la fin du fichier, la condition EOF est rencontrée.
stdin de la console
Cependant , l'entrée stdin de la console, connue sous le nom de mode interactif, n'a pas intrinsèquement d'indicateur EOF. En effet, la saisie dans la console est généralement un flux continu de caractères saisis par l'utilisateur.
Simulation d'EOF en mode console
Pour simuler un EOF en mode console, la plateforme- des combinaisons de touches spécifiques peuvent être utilisées :
En appuyant sur ces combinaisons de touches, le Le programme l'a traité comme si l'entrée avait atteint sa fin.
Ajout manuel d'EOF à stdin
Comme mentionné précédemment, stdin de la console est considéré comme un flux infini. Pour ajouter manuellement un EOF, l'utilisateur doit l'indiquer explicitement à l'aide des combinaisons de touches Ctrl D ou Ctrl Z.
Solution utilisant les fonctions fread ou read
Dans le code fourni échantillon en utilisant fread ou read, la boucle continuera indéfiniment jusqu'à ce que EOF soit rencontré. Pour ajouter manuellement une condition EOF dans ce scénario, utilisez l'approche suivante :
<br>int c;<br>while ((c = read(0, buffer, BUFSIZ)) > 0) {</p> <pre class="brush:php;toolbar:false">// Read and process data from stdin
}
// Lorsque Ctrl D ou Ctrl Z est enfoncé, c sera -1, indiquant EOF
if (c == -1) {
// Handle EOF condition
}
De cette façon, la boucle peut se terminer lorsque l'utilisateur appuie sur la combinaison EOF, permettant au programme de gérer la fin de la saisie en conséquence.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!