Language c test d'arret d'une boucle

Fermé
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008 - 9 avril 2008 à 09:36
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008 - 10 avril 2008 à 11:21
Bonjour,
je suis un débutant dans la programmation en c
j'ai voulu exécuter un programme qui contient une boucle avec un test d'arrêt
getchar()!=EOF
mais le programme ne se termine pas car je n'ai pas su comment saisir le EOF -la condition d'arret- aprés l'éxecution du programme
pourriez vous m'aider
merci;
A voir également:

7 réponses

SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
9 avril 2008 à 09:38
Salut,
tu n'as qu'à saisir une chaine de caractères particulière, genre "exit", comme pour une fenêtre dos
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 avril 2008 à 09:46
il me semble que EOF, c'est ctrl+D
mais pourquoi utiliser EOF, et pas un autre caractère ?
regarde là si tu veux utiliser des caractère un peu spéciaux : https://fr.wikipedia.org/wiki/ASCII
0
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
9 avril 2008 à 09:57
EOF (pour "End Of File") c'est pour quand ta boucle parcourt le contenu d'un fichier, pour tester si tu es arrivé à la fin.

Si ta boucle te demande un caractère à saisir jusqu'à ce que tu saisisses un caractère particulier il ne faut pas utiliser EOF, mais définir un caractère qui servira à arrêter cette boucle.
0
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008
9 avril 2008 à 10:20
merci a tous
le voila le programme que j'ai essayé d'implémenter


#include <stdio.h>
/* copy input to output; 1st version */
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}


alors ce n'est pas possible d'utiliser exit
j'attend vos réponses et merci a tous
0
Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011 73
9 avril 2008 à 10:28
Remplace EOF par un caractère qui sera utilisé uniquement pour arrêter le programme, un caractère que tu es sûr de ne pas utiliser dans un autre cas, par exemple '¤' ou '§', ça dépend à quoi correspondent les caractères que tu entres.
0
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008 > Laaris Messages postés 130 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 17 juin 2011
9 avril 2008 à 18:19
le compilateur me repond qu'il y a une comparaison illegal
pointeur avec caractaire
merci encore
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
9 avril 2008 à 14:26
as tu essayé ctrl+D ?
0
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008
9 avril 2008 à 18:17
merci
ctrl+D ça n'a pas marché
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
9 avril 2008 à 18:24
EOF c'est pour qu'en tu utilise un fichier...
definit c comme un char et utilise un caractere special pour la condition d'arret
0
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008
9 avril 2008 à 21:28
merci pour votre réponse
c'est simple de programmer un test d'arret
mais moi j'ai voulu tester l'exemple que j'ai trouvé dans le livre
"The C programming Language" de By Brian W. Kernighan and Dennis M. Ritchie
et ça ma surprie que l'exemple cité dans un tel livre ne marche pas
et j'essai de trouver l'erreur
merci encore
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
10 avril 2008 à 08:25
ça dépend aussi de ta commande de lancement.
as tu utiliser l'indirection ? genre:
prog<machin.txt
J'ai souvent remarqué que les exemple des livres ne fonctionnaient pas. Souvent les auteurs les écrivent sans tester, ils oublient des menus détails. Le but étant d'avoir le principe général. Si tu ne trouve pas EOF, c'est pas grave, utilise un autre caractère.
0
elmadina Messages postés 33 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 30 juin 2008
10 avril 2008 à 11:21
oui merci vous avez raison je vais utiliser un autre caractère mais je voulais juste comprendre ou est le problème
merci
0