Maison >développement back-end >C++ >Comment simuler une fin de fichier (EOF) dans le flux d'entrée standard (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!