Maison >développement back-end >C++ >Comment simuler EOF sur une 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 :
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>
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!