begin process at 2008 07 19 02:26:38
1 212 688 membres
27 nouveaux aujourd'hui
14 165 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vider memoir tampon [ Linux / Autre ] (WRIDANIOS)

vider memoir tampon le 08/04/2008 12:14:00

WRIDANIOS
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...

Re : vider memoir tampon le 08/04/2008 12:21:00

DeAtHCrAsH
Salut,
flushall() t'as essayé ?
Car fflush(...) c'est pour les flux sur les fichiers!

Shell

Re : vider memoir tampon le 08/04/2008 12:28:39

WRIDANIOS
merci
flushall() se trouve dans quel header de c....

Re : vider memoir tampon le 08/04/2008 13:15:51
Re : vider memoir tampon le 08/04/2008 13:49:54

WRIDANIOS
bon, quand je compile avec Geany sous Linux UBUNTU il m'affiche
[b]warning: implicit declaration of function ‘flushall’[/b]

Re : vider memoir tampon le 08/04/2008 16:05:28

WRIDANIOS
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

Re : vider memoir tampon le 08/04/2008 17:23:30

jfrancois
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 !

Jean-François



Classé sous : problem, saisie, vider, tampon, memoir

Participer à cet échange

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS