Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme erreur que je n'arrive pas à resoudre

    31 octobre 2018 à 12:22:05

    Bonjour ! Je suis le cours sur le C++ , et j'ai voulu lire un fichier "Dico" mais il me dit que j'ai déja défini quelque chose , mais je ne sais pas quoi :/

    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <fstream>
    
    using namespace std;
    
    string melange(string mot)
    {
       string melange;
       int position(0);
    
       //Tant qu'on n'a pas extrait toutes les lettres du mot
       while (mot.size() != 0)
       {
          //On choisit un numéro de lettre au hasard dans le mot
          position = rand() % mot.size();
          //On ajoute la lettre dans le mot mélangé
          melange += mot[position];
          //On retire cette lettre du mot mystère
          //Pour ne pas la prendre une deuxième fois
            mot.erase(position, 1);
        }
    
       //On renvoie le mot mélangé
       return melange;
    }
    
    
    
    
    
    
    
    int main()
    {
    
            int essaie(5), a(1);
            string motMystere, motMelange;
            char N;
            N = 'o';
          do{
    
    // Lecture du fichier et selection de la ligne
    ifstream    dico("C:/Users/Maël/Desktop/dico.txt");
    if(dico)
    {
        // Pas d'erreur
        string mots;
        dico >> mots;
    }
    else
    {
        cout << "Désolé impossible d'ouvir le fichier  )" << endl;
    }
    
    
    
    
        //1 : On demande de saisir le mot
        cout << "Voici le mot :  " << endl;
    
        cout << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl;
    
        //2 : On mélange les lettres du mot
        motMelange= melange(motMystere);
        cout << "Lettre au hasard : " << motMelange << endl;
        //3 : On demande a l'utilisateur quel est le mot mystere
    
        string reponse;
        do
        {
            cout << "Quel est le mot ? : " << endl;
            cin >> reponse;
    
            if(reponse == motMystere)
            {
                cout << "Bravo ! Tu as gagne ! " << endl;
    
            }
    
            else
            {
                cout << "C'est faux , ressaie ! " << endl;
                essaie = essaie - a;
                cout << "Il vous reste : " << essaie << "essais" << endl;
                 if(essaie <= 0)
                {
                cout << "Vous avez perdu ! " << endl;
                reponse = motMystere;
                }
            }
    
    
            }while (reponse != motMystere);
    
    
    
    
            cout << "Le mot mystere etait : \"" << motMystere << "\" Veut tu refaire une partie ? o / n" << endl;
            cin >> N;
    
    
    
    
    
          } while(N == 'o');
          return 0;
    }
    


    Merci d'avance !

    -
    Edité par NatatsukiraGazio 31 octobre 2018 à 14:00:21

    • Partager sur Facebook
    • Partager sur Twitter
      31 octobre 2018 à 13:14:44

      Lu'!

      Tu peux reprendre toutes les remarques ici : https://openclassrooms.com/forum/sujet/debutant-optimiser-mon-premier-code . Et j'ajouterai de soigner l'indentation de ton programme.

      Ensuite, donne le message d'erreur exact.

      • Partager sur Facebook
      • Partager sur Twitter

      Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

        31 octobre 2018 à 14:05:14

        Voici l'erreur :

        ||=== Build: Debug in Motmysttere (compiler: GNU GCC Compiler) ===|
        obj\Debug\main.o||In function `ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_':|
        C:\Users\Maël\Desktop\programmes\Motmysttere\main.cpp|10|multiple definition of `melange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'|
        obj\Debug\copie.o:C:\Users\Maël\Desktop\programmes\Motmysttere\copie.cpp|9|first defined here|
        obj\Debug\main.o||In function `main':|
        C:\Users\Maël\Desktop\programmes\Motmysttere\main.cpp|37|multiple definition of `main'|
        obj\Debug\copie.o:C:\Users\Maël\Desktop\programmes\Motmysttere\copie.cpp|36|first defined here|
        ||error: ld returned 1 exit status|
        ||=== Build failed: 5 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

        • Partager sur Facebook
        • Partager sur Twitter
          31 octobre 2018 à 14:17:48

          "multiple definition of `melange ..."

          Assez clair non ?

          Vous avez une définition de la fonction "melange" dans main.cpp et une dans copie.cpp.

          Faudrait vous décidez.

          -
          Edité par bacelar 31 octobre 2018 à 14:40:01

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            31 octobre 2018 à 14:19:58

            Salut ! Merci :) j'avais crée copie au cas ou je ferais une bétise mais merci ! :)
            • Partager sur Facebook
            • Partager sur Twitter
              31 octobre 2018 à 14:24:35

              Je crois que ton compilateur est un peu à la masse. A moins que tu ne nous aies pas donné le vrai code. Ça compile correctement.

              EDIT : ah bien vu j'avais pas fait attention au fait qu'il y avait deux fichiers.

              -
              Edité par Ksass`Peuk 31 octobre 2018 à 14:25:06

              • Partager sur Facebook
              • Partager sur Twitter

              Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

              Probleme erreur que je n'arrive pas à resoudre

              × 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