Maison >développement back-end >C++ >Comment simuler une fin de fichier (EOF) dans le flux d'entrée standard (stdin) ?

Comment simuler une fin de fichier (EOF) dans le flux d'entrée standard (stdin) ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 01:23:02552parcourir

How do I simulate an End-of-File (EOF) in the Standard Input Stream (stdin)?

Fin de fichier (EOF) dans le flux d'entrée standard (stdin)

Question :

Est-ce que stdin a un marqueur de fin de fichier ? Sinon, peut-on en ajouter un ?

Réponse :

EOF dans Stdin

stdin n'a pas naturellement d'EOF marqueur. Lors de la lecture depuis stdin (par exemple, en utilisant fread ou read), la boucle :

while ((c = read(0, buffer, BUFSIZ)) > 0) {
    // ...
}

ne se terminera que si un EOF est explicitement simulé.

Simulation d'EOF dans Stdin

Dans les systèmes UNIX, appuyez sur Ctrl D pour simuler EOF en stdin. Sous Windows, appuyez sur Ctrl Z. Le programme se comportera alors comme s'il avait atteint la fin d'un fichier d'entrée.

Redirection de l'entrée

Lorsque l'entrée est redirigée à partir d'un fichier (par exemple, programme < input.txt), le fichier lui-même contient un EOF, ce n'est donc pas un problème.

Clarification supplémentaire

Stdin sans la redirection peut être considérée comme un fichier infini. La fin de la saisie doit être signalée manuellement en simulant EOF à l'aide de Ctrl D ou Ctrl Z.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn