petit probleme en C.

Statut
N'est pas ouverte pour d'autres réponses.

- Lo0

Elite
Edit : la réponse a été trouvée. Plus moyen d'éditer le titre ? grmbl


Voila, j'ai une bug bizare. Soit c'est typiquement chez moi, soit je comprend rien :d

Bon petit prog a la con, juste pour montrer le probleme

Code:
#include <stdio.h>
#include <string.h>

int main()
{
char prout[10] ;
int nb = 5, i ;

for ( i = 0; i<nb ; i++ )
{
	printf("oooo\n") ;
	scanf("%c",&prout[i] ) ;
	printf("%c", prout[i] ) ;
}
}
Voila ce que j'obtiens si je rentre les lettre d ( enter ) g ( enter ) f ( enter )

Code:
oooo
d
doooo

oooo
f
foooo

oooo
g
goooo
Puis fin du programme.

Alors hu ? Deja il me demande pas les 5 valeurs et il passe par dessus des scanf, genre rien a foutre.. ?

J'utilise VS 2003, comment régler le probleme ?

Edit : Mettre un fflush(stdin) ; avant les scanf pour vider le buffer clavier.
 

Jereck

Α & Ω
Staff
Tu fais un scanf d'un caractère (%c)

et le [enter] est aussi un caractère dans le buffer ...


si je me souviens bien

scanf("%c%*c",&prout );

tu scanne un caractère (%c) et le caractère suivant tu le sors du buffer sans le conserver (%*c)
 
1er
OP
- Lo0

- Lo0

Elite
On m'a conseillé de mettre un
fflush(stdin) ;

Avant les scanf pour vider le buffer clavier, ca fonctionne.

Je suppose que ta méthode fonctionne aussi Jereck, mais j'ai pas trop envie d'essayer ( vu que je l'oublierai aussi tot ^^- )
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut