Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1606 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [c] Boucle (Debutant)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c] Boucle (Debutant)

n°959622
diantre
Posté le 23-01-2005 à 00:47:32  profilanswer
 

Bonjour
 
Pourquoi quand je fais une boucle du style :
 
do{
   printf("continuer ? :" );
   fflush(stdin);
   rep=getchar();
}while(rep=='o');
 
hé bien ça quitte quand même si je réponds par "o"?
Voilà c'est bête je sais, mais là j'avoue avoir du mal !
merci !

mood
Publicité
Posté le 23-01-2005 à 00:47:32  profilanswer
 

n°959666
Pillow
'cos the trees won't talk
Posté le 23-01-2005 à 02:11:00  profilanswer
 

Imaginons qu'on exécute ton programme, et qu'on tape : o<entrée>.
 
Le 'o' est lu par le getchar(), la condition du while est vrai, on boucle, tout va bien. Mais où passe le newline ? Et bien il ne passe nul part justement, il est lu par le getchar() suivant, le test du while est faux, et on quitte la boucle.
 
Le comportement de fflush n'est défini que pour les flux en écriture, donc pas pour stdin.

n°959920
diantre
Posté le 23-01-2005 à 14:37:03  profilanswer
 

Ok merci !
c'est sympa, j'ai mis un getchar() en plus
et ça marche.

n°959930
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-01-2005 à 14:52:38  profilanswer
 

Diantre a écrit :

Ok merci !
c'est sympa, j'ai mis un getchar() en plus
et ça marche.


Ok, mais plutôt que de bidouiller, il faut apprendre à utiliser les bonnes procédures:
 
http://mapage.noos.fr/emdel/notes.htm#saisie


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°961140
Slay
Posté le 24-01-2005 à 20:21:54  profilanswer
 

Diantre a écrit :

Ok merci !
c'est sympa, j'ai mis un getchar() en plus
et ça marche.


 
Tu peux également mettre un printf("\n" ); juste après et ca devrait passer sans un deuxieme getchar()

n°961365
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-01-2005 à 22:30:13  profilanswer
 

Slay a écrit :

Tu peux également mettre un printf("\n" ); juste après et ca devrait passer sans un deuxieme getchar()


Stop à la bidouille, merci. En plus, ça n'a rien à voir...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [c] Boucle (Debutant)

 

Sujets relatifs
[c-gcc] Boucle (debutant)[C] tableau [Debutant]
[Débutant] Problème de classeFaire une boucle ?
PB dans une boucle avec la propriété Selected !!!problème de boucle
PHPMYPAGER + design = debutantAide Delphi - Débutant
Accélérer une boucle[debutant] Boucle for / while et ecriture fichier
Plus de sujets relatifs à : [c] Boucle (Debutant)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR