Partage
  • Partager sur Facebook
  • Partager sur Twitter

Questions

Switch, tableaux, pointeurs

Sujet résolu
    28 février 2006 à 17:00:00

    Salut !
    Je commence par mon switch qui marche pas, je comprends pas (ça dois être une conerie ^^)

    void affichage_pendu (int trompees)
    {
         switch (trompees)
         {
                case 1 :
        cout <<"\t  _____ " << endl;
        cout <<"\t |     |" << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        cout <<"\t |      " << endl;
        break;
       
               case 2 :
        cout      <<"\t  ______    \n";
        cout      <<"\t |      |   \n";
        cout      <<"\t |     |_|  \n";
        cout      <<"\t |          \n";
        cout      <<"\t |          \n";
        cout      <<"\t |          \n" ;
        cout      <<"\t |          \n" ;
        cout      <<"\t |          \n" ;
        cout      <<"\t |          \n";
        cout      <<"\t |          \n";
        cout      <<"\t |          \n";     
             
             break;

     // Ca va jusqu'a 7
     default :
                      cout <<"ERREUR "<< &trompees<< endl;
              }
     }


    Ensuite une autre fonction de mon pendu, manipule caractères et tableaux :

    char* StockageLettres (char lettre, int compteur)
    {
       char* lettre_entrees = new char;
       
       for (int i = 0; compteur < 50; i++)
       {
            if (compteur == i)
            {
              lettre_entrees[compteur] = lettre;
            }
            else
            {
                lettre_entrees[compteur] = '-';
            }
       }
       lettre_entrees[compteur] = lettre;
       return &lettre_entrees[compteur];
    }


    Voilà ! Merci de m'aider pour une des 2 fonctions...
    • Partager sur Facebook
    • Partager sur Twitter
      28 février 2006 à 17:06:09

      Je ne connais le C++ mais je pense que ton erreur viendrais que le nombre du genre case 1: le 1 n'est pas entre "" ce qui donnerait: case "1":.


      Je le répéte je ne connais pas le C++ mais peut etre que sa peut marcher, en php g dja eu a faire à cette erreur donc c'est peut être le début d'une piste pour toi.
      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2006 à 17:13:09

        dans la premiere : met les numero apres case entre ' '

        dans la 2eme :
        char* lettre_entrees = new char;
        n'est pas vraiment utile met plutot char[50] par exemple
        • Partager sur Facebook
        • Partager sur Twitter
          28 février 2006 à 19:26:07

          Pour le premier, j'ai beau mettre les chiffres entre des apostrophes ou entre guillemets, ca persiste. Le message (affiché je ne sais pas combien de fois) :

          [Warning] '\040'
          unknown escape sequence '\|'



          Pour le 2e, ca ne change rien que je mette char mot[50] ou char* mot...

          Voilà le programme complet (en faite, il est pas complet, mais c'est un programme qui fonctionne):

          #include <cstdio>
          #include <cstdlib>
          #include <iostream>
          using namespace std;

          char* StockageLettres (char lettre, int compteur)
          {
             char lettre_entrees[50];
             
             for (int i = 0; compteur < 50; i++)
             {
                  if (compteur == i)
                  {
                    lettre_entrees[compteur] = lettre;
                  }
                  else
                  {
                      lettre_entrees[compteur] = '-';
                  }
             }
             lettre_entrees[compteur] = lettre;
             return &lettre_entrees[compteur];
          }

          int main ()
          {
              char mot;
              cin >> mot;
              StockageLettres (mot,3);
             
              cout <<"Ce programme n'a pas plante" << endl ;
             
              system("pause");
              return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter
            28 février 2006 à 21:45:15

            C'est parce que tu as oublié un break dans le cas default
            Voila ton code corrigé:
            #include <cstdio>
            #include <cstdlib>
            #include <iostream>
            using namespace std;

            char* StockageLettres (char lettre, int compteur)
            {
               char lettre_entrees[50];
               
               for (int i = 0; compteur < 50; i++)
               {
                    if (compteur == i)
                    {
                      lettre_entrees[compteur] = lettre;
                    }
                    else
                    {
                        lettre_entrees[compteur] = '-';
                    }
               }
               lettre_entrees[compteur] = lettre;
               return &lettre_entrees[compteur];
            }

            int main ()
            {
                char mot;
                cin >> mot;
                StockageLettres (mot,3);
               
                cout <<"Ce programme n'a pas plante" << endl ;
               
                system("pause");
                return 0;
            }




            Sinon, dans ton code de stockage de lettre
            ton probleme vient de ton for
            voila le code corrigé:
            #include <cstdio>
            #include <cstdlib>
            #include <iostream>
            using namespace std;

            char* StockageLettres (char lettre, int compteur)
            {
               char lettre_entrees[50];

               for (int i = 0; i < compteur; i++)
               {
                    if (i == compteur)
                    {
                      lettre_entrees[i] = lettre;
                    }
                    else
                    {
                        lettre_entrees[i] = '-';
                    }
               }
               lettre_entrees[compteur] = lettre;
               return &lettre_entrees[compteur];
            }

            int main ()
            {
                char mot;
                cin >> mot;
                StockageLettres (mot,3);

                cout <<"Ce programme n'a pas plante" << endl ;

                system("pause");
                return 0;
            }
            • Partager sur Facebook
            • Partager sur Twitter

            Questions

            × 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