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 :

Erreur switch o__O


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 93
    Par défaut Erreur switch o__O
    Hmmm voila je dois faire un menu dans mon programme donc je vais utiliser un switch case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        printf("Votre choix : ");
        scanf("%d", choix);
     
        switch(choix)
        {
            case '1' : IndexReduit(MaChaine);break;
            case '2' : Index(MaChaine);break;
            case '3' : Statistique(MaChaine);break;
            case '4' : Consultation(MaChaine);break;
            case '5' : ;break;
            case '6' : Restitution(MaChaine);break;
            default :printf("Erreur dans la saisie\n");break;
        }
    Mais dès que je tente un choix j'ai droit a un "segmentation fault" sachant que je peux appeler les fonctions sans problèmes en dehors du switch....

  2. #2
    Membre expérimenté
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Par défaut
    Ne serait-ce pas un scanf("%d", &choix) ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 93
    Par défaut
    Citation Envoyé par Strab
    Ne serait-ce pas un scanf("%d", &choix) ?
    raaaaaa exact...dans mon programme jai fait des scanf que sur des pointeurs donc j'avais pas besoin de mettre le &...snifff j'ai pas fait gaffe
    merci

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Et puis pas besoin des ' ' entre chaque chiffre

    case 1:
    case 2:
    ...

  5. #5
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par Skyrunner
    Et puis pas besoin des ' ' entre chaque chiffre

    case 1:
    case 2:
    ...
    le switch se fait sur des caractères, donc si, y'en a besoin
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Swoög
    le switch se fait sur des caractères, donc si, y'en a besoin
    Vu le format donne a scanf(), choix est un entier.

  7. #7
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    même si le scanf se fait sur un %d ?

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par Swoög
    le switch se fait sur des caractères, donc si, y'en a besoin
    scanf("%d", &choix);

    A premiere vue choix est en entier donc non il n'y en a pas besoin.

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Pour le switch, on peut le faire avec '1' '2' '3' mais ce n'est plus un entier qu'il faut prendre mais un caractère, donc le switch doit correspondre à ce qui est lu dans le scanf.
    Par contre, Il est un peu déconseillé de lire des caractères au clavier avec scanf (format %c) en tout cas.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

Discussions similaires

  1. Erreur switch case
    Par ciero dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2015, 08h20
  2. Erreur de compilation etrange lié a un switch ?
    Par mikebranque dans le forum C++
    Réponses: 3
    Dernier message: 10/07/2012, 13h04
  3. erreur switch pour ouvrir des fenêtres childform
    Par zabdaniel dans le forum C#
    Réponses: 4
    Dernier message: 03/03/2009, 11h37
  4. [C#]erreur de switch - datatable
    Par igorzup dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/08/2006, 12h29
  5. Erreur de compilation avec SWITCH et CASE
    Par barbarello dans le forum C++
    Réponses: 4
    Dernier message: 21/01/2006, 21h47

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