La fonction while

Résolu
romolo6 Messages postés 2 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 20 novembre 2005 - 19 nov. 2005 à 19:17
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 20 nov. 2005 à 11:57
Bon jour à tous

je commence depuis quelque jour à ecrire quelque petit code de debutant et j'essaye d'executer le suivant:

#include <stdio.h>
#include<conio.h>

main()
{

int a=0,i;
while (a <= 10)
{
scanf("%c",&i);
a=a+1;
printf("%d\n",a);
printf("i=%c\n",i);
}
getch();
}

et son execution affiche ceci à l'ecran:

h
1
i=h
2
i=


c'est à dire que la boucle avance de deux pas à la fois dont le premier pas est juste mais le deuxieme s'execute automatiquement sans aucun caractere.

Y a-t-il une explication?

merci d'avance pour votre réponse.

3 réponses

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
19 nov. 2005 à 20:12
C'est normal, la fonction scanf garde ce que tu a taper avant, donc en
faite tu passe une fois le scanf sans rien mettre dans ta variable i,
met un fflush(stdin); (elle vide le buffer du clavier) avant ton scanf
et hop magie cela marchera ;)



Bon code



++ALL
3
romolo6 Messages postés 2 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 10:49
Un grand merci, en effet c'est magique.
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
20 nov. 2005 à 11:57
Oublie pas de cliqué sur réponse accepté , ainsi ci quelq'un a le mm problème que toi, il vera la solution.



Bon code



++ALL
0
Rejoignez-nous