Maison > développement back-end > C++ > le corps du texte

Comment simuler EOF sur une entrée standard (stdin) ?

DDD
Libérer: 2024-10-27 23:29:29
original
704 Les gens l'ont consulté

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

Détermination de l'EOF du flux d'entrée standard (stdin)

En programmation, une source d'entrée courante est le flux d'entrée standard (stdin), qui lit les entrées du clavier de l'utilisateur . Cependant, déterminer quand l'utilisateur a fini de saisir les données et atteint la fin du fichier (EOF) peut parfois être difficile.

Stdin a-t-il EOF ?

Par défaut , stdin n'a pas intrinsèquement d'EOF. Cela signifie qu'un programme lisant depuis stdin continuera indéfiniment, en attendant plus d'entrées de la part de l'utilisateur.

Ajout d'EOF à stdin

Si vous devez simuler manuellement un EOF sur stdin, deux méthodes courantes sont :

  • Ctrl D (UNIX) : Dans les systèmes basés sur UNIX, appuyer sur Ctrl D signale la fin du fichier.
  • Ctrl Z (Windows) : Sous le système d'exploitation Windows, appuyer sur Ctrl Z indique généralement la fin de la saisie.

Exemple :

Ce qui suit L'extrait de code utilise fread pour lire depuis stdin et vérifie EOF à l'aide de Ctrl D :

<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>
Copier après la connexion

Lorsque l'utilisateur appuie sur Ctrl D, la fonction fread() renvoie -1, indiquant la fin du fichier. Cela déclenche la fin de la boucle while.

Remarque :

Il est important de noter que les méthodes de simulation EOF décrites ci-dessus dépendent du système et peuvent ne pas fonctionner de manière cohérente d'un bout à l'autre. toutes les plateformes.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!