Getchar = valeur? [Fermé]

Signaler
-
 SKZ -
Bonjour,
Poriez-vous me dire comment vérifier la valeur d'une expression...
(je voudrais vérifier la valeur de l'expression getchar( ) != EOF )
deuxiéme question :
EOF c'est l'indicateur de fin de fichier .... C'es QUOI l'indicateur de fin de fichier ???
D'avance Merci
Max

7 réponses

Messages postés
5939
Date d'inscription
mercredi 26 mai 2004
Statut
Contributeur
Dernière intervention
18 septembre 2009
209
EOF : End Of File
dernier caractere corespondant à /0 pour savoir quandle fichier est fini ...tres pratique pour ne pas lire le fichier situé apres dans la memoire...
sinon pour ton test suffit de faire.
if(getchar()!= EOF)
Il sera probablement plus malin de faire un
while( getchar()!=EOF ) {
...
}


Pour répéter l'opération TANT QUE le caractère lu n'est PAS la fin de fichier.

Entant donné que les comparateur (==, !=, <, <=, >, >=) renvoit des "valeurs booléenne" (zéro pour "faux" et non-zéro pour "vrai") il suffit, comme le dit canard de faire un test (if, while, for...)

Ex :
for(a='\0' ; a!=EOF; a=getchar() ) {
...
} 

est équivalant au while audessus
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
206
Un doute m'ayant assailli au vu des deux réponses proposées, et ma mémoire risquant de me faire des siennes, je suis allé verifier...

EOF est une définition de "stdio.h", correspondant à la valeur (-1) et non à 0 (ou \0) auquel cas la boucle "for" proposée ne s'exécuterait pas.
La valeur (-1) n'est pas à proprement parler un caractère, mais la valeur rendue par la fonction, en cas de fin de fichier (dont le programmeur n'a pas à se soucier quant à la manière utilisée pour la détecter), sachant que les caractères sont traités comme des entiers.
la valeur (-1) et non à 0 (ou \0) auquel cas la boucle "for" proposée ne s'exécuterait pas.
Et il ose avouer qu'il m'a prit pour un rigolo ;°)

Néanmoins, très juste précision.
J'ai toujour un gros probléme avec EOF, je ne sais pas comment l'activer quand j'éxécute mon prog....
j'ai :
while ((c = getchar()) != EOF)
qui veut dire ( enfin je croi ... ):
Si se que j'entre est différent de EOF allors il éxécute la suite ....
le probléme est que je ne sait pas comment faire pour entrer EOF ...
Merci d'avance
et déja merci pour toutes vos réponses ....
Max
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
140
EOF sous DOS et Windows est la combinaison de touches CTRL+Z
Merci pour vos réponces !!!!
Max
Messages postés
1225
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2005
140
de rien, à ton service (si le pb est resolut, svp indique le en validant resolut en haut du message)