IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Affichage en double du printf sans exécution du contenue


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Affichage en double du printf sans exécution du contenue
    Bonjour/Bonsoir,

    Je travaille actuellement sur un projet Ecole.
    Je suis bloqué sur un bug dans ma boucle do while : La 1ere execution fonctionne correctement mais dès la 2eme execution du dowhile , on se retrouve avec l'affichage en double .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    do{
            // Affiche de la clé unique client
            printf("Identifiant client: %d \n",cleClient);
            // Etat de connexion 1 (connecté)
     
     
            // Affichage du menu
            printf("Saisir: \n\t1)Consultation\n\t2)Reservation\n\t9)Quittez\n");
     
            // Attente du choix de l'utilisateur
            choix=getchar();
     
     
            // Action selon le choix
            switch(choix-'0'){
                case 9:Connexion = 0; 
                    break;
                case 1:Consultation(&req,fileServ,fileClient);
                    break;
                case 2:Reservation(&req,fileServ,fileClient);
                    break;
            }
     
     
     
     
            printf("Connexion : %d\n",Connexion);
        }while(Connexion!=0);
    Nom : term_resultat.png
Affichages : 298
Taille : 41,2 Ko

    J'ai déjà essayer de tester plusieurs chose mais toujours le même bug ( de do while à while , de getchar à scanf ou fgets , de switch case au if ), mais je ne vois toujours pas d'ou peut provenir cette erreur.

    Merci d'avance de votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    Après l'affichage de "Saisir: \n\t1)Consultation\n\t2)Reservation\n\t9)Quittez\n", tu as tapé sur 2 touches, le caractère '1' et la touche "Entrée". "Entrée" est obligatoire pour terminer la saisie, mais il y a alors 2 caractères dans le buffer de lecture. La fonction getchar() va donc retourner '1' la première fois et le caractère '\n' la seconde.
    Il faut donc ôter ce '\n', par exemple en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     // Attente du choix de l'utilisateur
            choix=getchar();
     // ignorer jusqu'au '\n' qui suit
            while ( getchar() != '\n' )
                continue;

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup pour vos réponses, problème réglé tout marche impec !! . Le problème provient effectivement de la saisie "entrée" dans le getchar() .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/07/2007, 12h19
  2. Réponses: 2
    Dernier message: 10/09/2006, 12h35
  3. [Système] rediretion sans exécuter le code php
    Par sam01 dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2006, 01h30
  4. Affichage long double
    Par slate dans le forum C++
    Réponses: 5
    Dernier message: 07/02/2006, 18h04
  5. Problème a l'affichage dans la console (printf)
    Par PhoneKilleR dans le forum C
    Réponses: 21
    Dernier message: 23/09/2003, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo