petit probleme en C.

Discussion dans 'Web, design' créé par - Lo0, 22 Avril 2007.

Statut de la discussion:
Fermée.
  1. Offline
    - 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.
    - Lo0, 22 Avril 2007
    #1
  2. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    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)
    Jereck, 22 Avril 2007
    #2
  3. Offline
    - 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 :p- )
    - Lo0, 22 Avril 2007
    #3
Statut de la discussion:
Fermée.