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 :

Problémes de Boucles imbriquées


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Process enginer
    Inscrit en
    Avril 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Process enginer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 14
    Par défaut Problémes de Boucles imbriquées
    Bonjour,

    je veux réaliser un programme qui utilise deux 'switch'
    mais ça marche pas :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #include <stdio.h>
     
    char choix1,choix2;
     
    main()
    {
     
    printf("ENTER UR CHOICE :\n");
    choix1 = getchar();
     
    switch (choix1)
     
    {
     
    case'y':
    printf("ENTER THE FILE :\n");
    choix2=getchar();
     
    switch (choix2)
    {
        case'1':
        printf("'.bas' file");
        break;
     
        case'2':
        printf("'.900' file");
        break;
     
        default :
    	printf("WRONG CHOICE");
     
     
    };
     
    break;
     
    case'n':
    printf("2");
    break;
     
        default :
    	printf("WRONG CHOICE");
     
    };
    }
    merci pour votre aide

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    ça marche pas
    c'est-à-dire ? quelle est l'erreur ?

    En attendant d'avoir plus de précisions je te conseillerai quand même d'encapsuler (entre { }) toute la section contenant le 2ème switch (= la section du cas 'y').

  3. #3
    Membre averti
    Homme Profil pro
    Process enginer
    Inscrit en
    Avril 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Process enginer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 14
    Par défaut
    " ça marche pas" c'est à dire lorsque je choisis 'y' le compilateur affiche "ENTER THE FILE" et s’arrête, il ne continue pas vers la deuxième switch.
    j'ai déjà essayé ta proposition ça marche pas
    Merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Quand tu appuies sur ENTER, un '\n' est ajouté dans ton buffer clavier...

  5. #5
    Membre averti
    Homme Profil pro
    Process enginer
    Inscrit en
    Avril 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Process enginer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 14
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Quand tu appuies sur ENTER, un '\n' est ajouté dans ton buffer clavier...
    alors comment résoudre à ceci stp??

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Citation Envoyé par claude_tech Voir le message
    alors comment résoudre à ceci stp??
    En cherchant un peu dans la FAQ par exemple : http://c.developpez.com/faq/?page=cl...buffer_clavier

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 123
    Par défaut problème de buffer
    Bonjour,
    1) il vous affiche bien un ENTER THE FILE ? Mais, le caractère suivant est le retour chariot de votre première entrée. Il faut que vous fassiez attention que getchar() "pop" le premier caractère trouvé dans stdin. Si vous tapez 'y1' ou 'y2' suivie de entrée, cela devrait fonctionner. Donc, faites un getchar() supplémentaire pour enlever le retour chariot.
    2) le WRONG CHOICE n'a pas de retour chariot. Dans stdout, s'il l'on veut faire afficher la chaîne, il faut qu'il y ait un retour chariot à la fin sinon la chaîne reste dans le buffer.

  8. #8
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 485
    Par défaut
    Citation Envoyé par olivieram Voir le message
    Bonjour,
    1) il vous affiche bien un ENTER THE FILE ? Mais, le caractère suivant est le retour chariot de votre première entrée. Il faut que vous fassiez attention que getchar() "pop" le premier caractère trouvé dans stdin. Si vous tapez 'y1' ou 'y2' suivie de entrée, cela devrait fonctionner. Donc, faites un getchar() supplémentaire pour enlever le retour chariot.
    Je me doute que ton envie d'aider est bien réelle, mais il faut absolument que tu prennes l'habitude de relire le fil en entier au moins une fois avant d'intervenir !

  9. #9
    Membre averti
    Homme Profil pro
    Process enginer
    Inscrit en
    Avril 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Process enginer
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 14
    Par défaut
    Bonjour,

    Merci pour vos réponse.

    Voila comment j'ai postulé :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #include <stdio.h>
    #include <string.h>
     
    char choix1,choix2,a;
     
    main()
    {
     
    printf("ENTER UR CHOICE :\n");
    scanf("%c",&choix1);
    fflush(stdin);
    if(choix1=='y')
    {
    printf("ENTER THE FILE :\n");
     
    scanf("%c",&a);
     
     
        if(a=='1')
        {
        printf("'.bas' file");
        }
    if(a=='2')
        {
        printf("'.900' file");
        }
     
    }
     
    if(choix1=='n')
    {
        printf("2");
    }
     
     
    }
     
    je sais que c'est une solution minable, mais pour moi le problème est résolu !!
     
    Merci

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    fflush(stdin);
    Il ne faut jamais "fflusher" stdin. Ce n'est pas portable.

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par cedric70 dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/08/2014, 15h36
  2. Problème de boucle imbriquée
    Par Phossoyeur dans le forum C#
    Réponses: 0
    Dernier message: 19/06/2012, 14h09
  3. [OCaml] Problème de boucles imbriquées
    Par Capitain_jupi dans le forum Caml
    Réponses: 0
    Dernier message: 01/10/2011, 13h42
  4. [XSLT] problème de boucle imbriquée en xsl/xpath
    Par lol88 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/10/2009, 18h30
  5. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26

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