Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec des boucles for

    13 octobre 2018 à 12:51:07

    Bonjour,

    J'ai un problème avec des boucles for dans mon code :

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    
        string card[50][7],pTest,persoChoisi;
        int p(-1),character(0),link(0),verif[50][7];
    
        ifstream fichier("D:/naca4412.txt");  
        if(fichier)
        {
          string ligne;
          while(getline(fichier, ligne))
          {
              card[character][link] = ligne;
              link ++;
              if(link == 8)
              {
                  character++;
                  link=0;
              }
           }
        }
        else
        {
            cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl;
        }
    
    
        for (int a(0);a<5;a++)
        {
            cout<<card[a][0]<<endl;
        }
    
        cout<<"Veulliez choisir un personnage parmis les noms ci-dessus"<<endl;
        cin>>persoChoisi;
    
        do
        {
            p++;
        }while(persoChoisi!=card[p][0]);
    
        cout<<"vous avez choisi : "<<card[p][0]<<endl;
    
        for (int n(0);n<50;n++)
        {
            for (int i(0);i<8;i++)
            {
                for (int a(0);a<8;a++)
                {
                    if(card[p][i]==card[n][a])
                    {
                        verif[n][a]=1;
                    }
                    else
                    {
                        verif[n][a]=0;
                    }
                }
            }
        }
    
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==7)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==6)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==5)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==4)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==3)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==2)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==1)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
        
        
    
        return 0;
    }
    
    Voila l’entièreté de mon code. Le seul problème, ce que mon programme de rentre pas dans cet boucle et ça m'énerve profondement. Quelqu'un aurait vu l'erreur dans mon code ?
    for (int b(0);b<50;b++)
        {
            cout<<card[b][0]<<" :"<<endl;
            if(verif[b][1]+verif[b][2]+verif[b][3]+verif[b][4]+verif[b][5]+
            verif[b][6]+verif[b][7]==7)
            {
               cout<<card[b][0]<<" :"<<endl;
               for(int a(0);a<8;a++)
               {
                   cout<<card[b][a]<<endl;
               }
            }
            cout<<endl;
        }
    



    • Partager sur Facebook
    • Partager sur Twitter
      13 octobre 2018 à 13:06:36

      Salut,

      Essaye de decouper ton programme en plusieurs fonction, avec des noms explicites si possible, c'est plus simple a debuger, et c'est bien plus lisible (SRP)

      using namespace std;

      C'est une mauvaise pratique, si tu cherche rapidement sur le forum, tu trouveras rapidement des liens et des explications du pourquoi

      Quand tu initialise des variables, utilise {} et pas () :

      int a{0}
      //plutot que
      int a(0)

      Les () servent a declarer des fonctions

      Et met des espaces dans tes instructions :

      std::cout << "Hello World " << std::endl;
      //Plutot que
      std::cout<<"Hello World"<<std::endl;

      Ca sera plus lisible, et sa aidera a trouver le probleme



      -
      Edité par K4kugen 13 octobre 2018 à 13:08:09

      • Partager sur Facebook
      • Partager sur Twitter
        13 octobre 2018 à 13:07:48

        Ok merci je vais faire tout ça :D
        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec des boucles for

        × 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