WRIDANIOS
Messages postés24Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention11 mai 2009
-
8 avril 2008 à 12:14
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 2009
-
8 avril 2008 à 17:23
Bonjour,
Je programme en C ,au niveau des etude, depuis 10/2007, mon problem est lorsque je v saisir un caractaire , le compilateur depase la saisie , j'ai utiliser scanf("%c",&car) ou car=getchar()
mais le meme problem , j'ai bien conclu que c'est a cause de la memoir tampon , ils ont ma dis de vider la memoire tampon avant d'effectuer la saisie . j'ai essayer 'fflush(0)' du header "unistd.h" , mes c'est tjr le meme probleme . Quoi faire, meci d'avance...
WRIDANIOS
Messages postés24Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention11 mai 2009 8 avril 2008 à 16:05
re:
ce ci est un exemple de programme :
#include <stdio.h>
int main(void)
{
char ca;
do {
flushall();
ca=getchar();
if(ca!='a');
printf("erreur");
}while(ca!='a');
return 0;
}
l'affichage est le suivas lors du saisie un car != de 'a';
"erreurerreur"
.
j'explique :
le progame affiche le message "erreur" lors de la premiere saisie d'un caractaire != de 'a' puis il reboucle et affiche un 2eme message "erreur" sans attendre une saisie par le clavier ....
aucune idee pour quoi !!!!
a vous ! merci
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 8 avril 2008 à 17:23
Bonjour,
1) Je n'ai ce comportement (erreurerreur) que si je supprime le flushall() et c'est normal puisque la boucle tourne 2 fois : sur la caractère saisi (différent de 'a') puis sur le retour chariot qui suit ! avec le flushall() le retour chariot est supprimé.
2) if (ca != 'a'); : le printf("erreur"); sort à chaque saisie !