Bonjour,
Dans le livre de K&R Norme ANSI il y a un programme très simple qui est le suivant :
Seulement sur ma machine la valeur de EOF est -1 et par conséquent, comme getchar lit caractère par caractère quand je rentre -1, il me lit dabord '-' puis '1' et donc la condition c !=EOF est toujours vraie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 main () { int c; c = getchar (); while (c != EOF) { putchar (c); c = getchar (); } }
Le programme ne termine donc pas!
De plus dans le livre il est écrit :
On dirait qu'ils considèrent que l'entrée standart c'est un fichier!Le problème est de détecter la fin de données en entrée. La solution est que getchar retourne une valeur particulière lorsqu'il n'y a plus rien en entrée, une valeur que l'on ne puisse pas confondre avec un vrai caractère. Cette valeur s'appelle EOF ...
Or mon entrée standart c'est mon terminal. Donc a quelle moment le programme sait qu'il n'y a plus rien en entrée puisque je peux tjrs écrire dans la console?
j'espère que vous m'avez compris! Merci d'avance








Répondre avec citation





ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Partager