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

  FORUM HardWare.fr
  Programmation
  C

  assurer son scanf

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

assurer son scanf

n°1430751
d'jo
Posté le 24-08-2006 à 15:57:24  profilanswer
 

Bonjour ,
 
J'ai des problemes  avec le scanf ,je sais qu il recupere des données formatées dans le buffer.
J aimerai pouvoir tout vider et ensuite faire mon scanf... fflush(stdin) est sans effet quelqu un à une idée ??
 
merci d avance

Message cité 2 fois
Message édité par d'jo le 24-08-2006 à 16:06:12
mood
Publicité
Posté le 24-08-2006 à 15:57:24  profilanswer
 

n°1430834
Sve@r
Posté le 24-08-2006 à 17:10:10  profilanswer
 

d'jo a écrit :

Bonjour ,
 
J'ai des problemes  avec le scanf ,je sais qu il recupere des données formatées dans le buffer.
J aimerai pouvoir tout vider et ensuite faire mon scanf... fflush(stdin) est sans effet quelqu un à une idée ??
 
merci d avance


 
Normallement, si ton programme est bien conçu, tu ne devrais jamais avoir à vider ton buffer. C'est pour çà que "fflush" est sans effet sur "stdin".
Le seul moment où tu as un caractère parasite, c'est quand tu fais saisir un nombre style "scanf("%d", &var)". Là, tu saisis ton nombre et tu appuies sur "entrée". A ce moment, le scanf récupère les octets numériques mais laisse le "entrée" dans le buffer car ce n'est pas du chiffre. Pour remédier, il te faut rajouter juste après un "getchar()" qui va te supprimer ce "entrée" de ton "stdin".
Ou bien tu fais saisir ton nombre sous forme de chaîne avec "fgets()" (donc le "entrée" est récupéré par le "fgets()" et ne reste pas dans "stdin" ) suivi de "sscanf" pour le formatter.
 
Mais pour répondre à ta question initiale, il existe "fpurge()" (ou "__fpurge()" sous Linux) qui peuvent te purger un buffer...


Message édité par Sve@r le 25-08-2006 à 15:27:29
n°1431116
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-08-2006 à 00:41:07  profilanswer
 

d'jo a écrit :

J'ai des problemes  avec le scanf ,


Soit tu apprends à t'en servir :  
 
http://xrenault.developpez.com/tutoriels/c/scanf/
 
Soit tu apprends à t'en passer :  
 
http://mapage.noos.fr/emdel/notes.htm#saisie
http://mapage.noos.fr/emdel/notes.htm#fichiers


---------------
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°1431118
Trap D
Posté le 25-08-2006 à 00:46:56  profilanswer
 

fflush(stdin) n'est pas défini par la norme et peut provoquer des comportments indésirables.


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

  assurer son scanf

 

Sujets relatifs
[résolu]Problème avec scanfS'assurer qu'un element est visible a l'ecran [resolu]
alternative a scanf("%s",dd)Longueur maximale d'une entrée clavier sous DOS via scanf/gets ?
[C] Entrée et scanf[STL]Assurer l'unicité d'un élément dans un container
probleme avec scanfPetit probleme tout bete (printf/scanf)
scanf et pointeur de chaineFormat scanf
Plus de sujets relatifs à : assurer son scanf


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)