Partage
  • Partager sur Facebook
  • Partager sur Twitter

Déclaration de "string"

Bogue

Sujet résolu
    1 juillet 2007 à 13:15:29

    Bonjour,
    Je suis lancé dans un petit "OS" rigolo en console mais il bogue au premier switch plus précisément au case 2: voilà mon code :
    #include <cstdlib>
    #include <iostream>


    #include <string>


    using namespace std;


    int main(int argc, char *argv[])
    {
        cout << "Bienvenue dans console MEDIUMINT l'Os en console :" << endl;
        cout << "Vous avez deja un compte ? Tapez 1 "<<endl;
        cout << "Vous voulez vous creer un compte ? Tapez 2"<<endl;
        cout << "Choisissez : ";
        int compte;
        cin >> compte;
        switch(compte)
        {
                      case 1:
                           cout << "Vous avez deja un compte" <<endl;
                           cout << "Quel est votre nom de compte ?";
                           //string maChaine = "Bonjour !";
                           break;
                      case 2:
                           cout << "Vous voulez creer un compte" <<endl;
                           break;
    }
        system("PAUSE");
        return EXIT_SUCCESS;
    }
     

    Heu... pourquoi le string est en commentaire o_O ?

    Quand je met le string le case bug quand je ne le met pas il ne bug pas.
    MErci
    • Partager sur Facebook
    • Partager sur Twitter
      1 juillet 2007 à 13:19:00

      essaye de le mettre avant tes premiers cout.
      • Partager sur Facebook
      • Partager sur Twitter
        1 juillet 2007 à 13:26:06

        non c'est toujours au case 2
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 juillet 2007 à 13:34:44

          Salut,

          C'est à la compilation que ce plante chez toi ?

          Chez moi, et d'après l'erreur retournée, il semble qu'on ne peut pas faire de déclaration dans un switch ( un switch sert à effectuer des actions)

          Citation : Compilateur Visual Studio 2005

          Erreur 1 error C2360: l'initialisation de 'maChaine' est ignorée par l'étiquette 'case'



          Il utliser des if ... else if ... else if ....... else.

          Xav57
          • Partager sur Facebook
          • Partager sur Twitter
            1 juillet 2007 à 13:40:57

            2 possibilités pour résoudre ce problème:

            1) Créer un bloc dans le switch-case:


            {
                              case 1:
                                   {   //Ouverture d'un bloc. A l'intérieur je peux faire ce que je veux
                                   cout << "Vous avez deja un compte" <<endl;
                                   cout << "Quel est votre nom de compte ?";
                                   string maChaine = "Bonjour !";
                                   break;
                                   }  //Fermeture du bloc. Toutes les variables créées dans le bloc sont détruites.
                              case 2:
                                   cout << "Vous voulez creer un compte" <<endl;
                                   break;
            }

            En faisant ça tu peux créer ta chaîne de caractère dans le switch-case, MAIS tu ne pourras pas utiliser maCaine plus loin dans le code car la variable n'existera plus.

            2) Déclarer la chaîne avant le switch

            string maChaine;
            {
            switch(compte){
                              case 1:
                                   cout << "Vous avez deja un compte" <<endl;
                                   cout << "Quel est votre nom de compte ?";
                                   maChaine = "bonjour" ;
                                   break;
                              case 2:
                                   cout << "Vous voulez creer un compte" <<endl;
                                   break;
            }
            }


            Cette fois par contre la chaine est utilisable plus loin dans le code puisqu'on reste dans le me bloc.
            • Partager sur Facebook
            • Partager sur Twitter
            Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

            Déclaration de "string"

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown