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 :

Erreurs de syntaxe


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut Erreurs de syntaxe
    Bonjour,
    Je suis débutant en C++ et actuellement j'écris un "mini-programme" dans la console, mais mon EDI (codeblock) m'affiche des lignes et des lignes d'erreurs (41 errors, 2 warnings) que je ne comprend PAS DU TOUT
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
     
     
    using namespace std;
     
    string melangerLettres(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;
    }
     
    double moyenne(vector<int> tableau, int taille)
    {
         double moyenneJeu (0);
         for (int I(0); I<tableau.size(); I++)
         {
             moyenneJeu += tableau[I];
         }
         moyenneJeu /= tableau.size();
         return moyenneJeu;
    }
     
     
    int main()
    {
       string motMystere, motMelange, motUtilisateur, reponseUtilisateur, oui("oui");
       int nbCoup(0), coupRestant, note(20), nbPartie(0), moyennePartie;
       vector<int> tableauMoyenne(0);
       do
       {
       //Initialisation des nombres aléatoires
       srand(time(0));
       nbPartie++;
     
       //1 : On demande de saisir un mot
       cout << "Choisissez un mot : " ;
       cin >> motMystere;
       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;
     
       //2 : On récupère le mot avec les lettres mélangées dans motMelange
     
     
       //3 : On demande à l'utilisateur quel est le mot mystère
       do
       {
     
          motMelange = melangerLettres(motMystere);
          cout << endl << "Quel est ce mot ? : " << motMelange << endl;
          cin >> motUtilisateur;
     
          if (motUtilisateur == motMystere)
          {
             cout << "Bravo !" << endl << endl;
          }
          else
          {
             cout << "Ce n'est pas le mot !" << endl;
             nbCoup++;
             coupRestant = 5 - nbCoup;
             note = (20/5)*coupRestant;
     
             if (coupRestant != 0)
             {
                 cout << "Il vous reste " << coupRestant << " essaie." << endl << endl;
             }
             else
             {
                 cout << endl << "Vous n'avez plus aucun essais, la reponse etait : " << motMystere << endl;
             }
          }
     
       }while (motUtilisateur != motMystere && coupRestant !=0);
       //On recommence tant qu'il n'a pas trouvé
       cout << "votre note est : " << note << "/20" << endl;
       tableauMoyenne.push_back(note);
       int tailleT(tableauMoyenne.size());
       moyennePartie = moyenne(tableauMoyenne, tailleT);
       cout << "la moyenne de vos " << nbPartie << " est : " << moyennePartie << "/20" ;
     
       cout << "Voulez-vous refaire une partie ? oui ou non ?" << endl << endl;
       cin >> reponseUtilisateur;
        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;
       } while (reponseUtilisateur == oui);
     
        return 0;
    }
    Merci d'avance de votre aide et ne vous moquez pas, je suis vraiment tout débutant !

  2. #2
    Membre actif
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2013
    Messages : 77
    Par défaut


    Pouvez vous nous montrer les erreurs affichées?
    Sous Visual Studio, ça compile; après je n'ai pas analysé le code.

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    qu'est ce que la balise ?
    Si mon code compile sous visual studio, c'est que je n'ai pas fait "d'erreurs" de C++ ??
    Voici les errors et warning en pieces jointes (images)
    Images attachées Images attachées   

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il n'y a pas de ligne 171 dans le code que tu as posté...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Aucune erreur sous code::block chez moi non plus, le code est correct.
    Dans l’arborescence du projet en cours, si il y a d'autres fichiers que main.cpp, les supprimer.

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut Résolu
    J'avais une entete .h et un autre fichier .cpp ouvert dans le même projet, j'ai taper le code dans un nouveau projet vierge et tout fonctionne !
    Merci a vous

  7. #7
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut Suite de mon programme
    Désolé de vous déranger a nouveau mais voila, sur la dernière partie de mon mini programme en console, mon ordi m'affiche à chaque fois un message d'erreur (ce qui m'empeche de lancer le programme), et lorsque que je build le projet, il m'affiche des messages que je n'ai jamais vue ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
     
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
    #include <fstream>
     
     
    using namespace std;
     
    string melangerLettres(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;
    }
     
    string choixMot(vector<string> tableau)
    {
        int position = rand() % tableau.size();
        string motChoisis = tableau [position];
        return motChoisis;
    }
     
    double moyenne(vector<int> tableau, int taille)
    {
         double moyenneJeu (0);
         for (int I(0); I<tableau.size(); I++)
         {
             moyenneJeu += tableau[I];
         }
         moyenneJeu /= tableau.size();
         return moyenneJeu;
    }
     
     
    int main()
    {
       string motMystere, motMelange, motUtilisateur, reponseUtilisateur, oui("oui");
       int nbCoup(0), coupRestant, note(20), nbPartie(0), moyennePartie;
       vector<int> tableauMoyenne(0);
       vector<string> dictionnaire (0);
       do
       {
       //Initialisation des nombres aléatoires
       srand(time(0));
       nbPartie++;
     
     
       ifstream fichier("C:/Users/Maël/Desktop/Informatique/dico.txt");
        string motMystere;
     
       if(fichier)
       {
        fichier.seekg(0, ios::end);  //On se déplace à la fin du fichier
        int taille;
        taille = fichier.tellg();
        fichier.seekg(0, ios::beg);
        string dico;
        int position;
        do
        {
            fichier >> dico;
            dictionnaire.push_back(dico);
     
     
            position = fichier.tellg();
        }while (position < taille);
       }
       motMystere = choixMot(dictionnaire);
     
     
     
       cout << "voici le mot : " << motMystere;
       do
       {
     
          motMelange = melangerLettres(motMystere);
          cout << endl << "Quel est ce mot ? : " << motMelange << endl;
          cin >> motUtilisateur;
     
          if (motUtilisateur == motMystere)
          {
             cout << "Bravo !" << endl << endl;
          }
          else
          {
             cout << "Ce n'est pas le mot !" << endl;
             nbCoup++;
             coupRestant = 5 - nbCoup;
             note = (20/5)*coupRestant;
     
             if (coupRestant != 0)
             {
                 cout << "Il vous reste " << coupRestant << " essaie." << endl << endl;
             }
             else
             {
                 cout << endl << "Vous n'avez plus aucun essais, la reponse etait : " << motMystere << endl << endl;
             }
          }
     
       }while (motUtilisateur != motMystere && coupRestant !=0);
       //On recommence tant qu'il n'a pas trouvé
       cout << "votre note est : " << note << "/20" << endl;
       tableauMoyenne.push_back(note);
       int tailleT(tableauMoyenne.size());
       moyennePartie = moyenne(tableauMoyenne, tailleT);
       cout << "la moyenne de vos " << nbPartie << " partie est : " << moyennePartie << "/20" << endl << endl ;
     
       cout << "Voulez-vous refaire une partie ? oui ou non ?" << endl << endl;
       cin >> reponseUtilisateur;
        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;
       } while (reponseUtilisateur == oui);
     
        return 0;
    }
    fichier.txt étant un fichier ne contenant que des mots dans l'ordre alphabétique de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    ABAISSA
    ABAISSABLE
    ABAISSABLES
    ABAISSAI
    ABAISSAIENT
    ABAISSAIS
    ABAISSAIT
    ABAISSAMES
    ABAISSANT
    ABAISSANTE
    ABAISSANTES
    ABAISSANTS
    ABAISSAS
    ABAISSASSE
    ABAISSASSENT
    ABAISSASSES
    ABAISSASSIEZ
    ABAISSASSIONS
    ABAISSAT
    ABAISSATES
    ABAISSE
    ABAISSEE
    ABAISSEES
    ABAISSE-LANGUE
    Pleaase help me
    Images attachées Images attachées   

  8. #8
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    Re !

    Ce nouveau message veut dire que tout est bon !

    Quand le programme ce termine subitement, c'est souvent un appel à une adresse mémoire qui n'existe pas. Par exemple la troisième case d'un vecteur avec seulement deux éléments.

    Pour récupérer une ligne dans un fichier texte, il est préférable d'utiliser le std::getline(...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <vector>
    #include <string>
    #include <fstream>
     
    int main()
    {
        std::vector< std::string > dico;
     
        std::ifstream file("dico.txt");
        std::string word;
        while( std::getline( file, word ))
        {
            dico.push_back( word );
        }
        file.close();
     
        return dico.size();
    }

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 121
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Pour comprendre pourquoi ce joli message, quoique, frustrant apparait, il faut utiliser le débogueur. Pour ce faire, il faut lancer le programme en passant par le menu :
    Debug > Run

    Le programme s'exécutera comme d'habitude, sauf qu'au moment du crash, il sera mis en pause et vous aurez la chance, qui dis-je, le privilège de voir l'état (les valeurs) de vos variables et de comprendre un peu mieux ce que fait le programme est pourquoi il bogue.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    J'ai modifié mon code avec getline :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
    #include <fstream>
     
     
    using namespace std;
     
    string melangerLettres(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;
    }
     
    string choixMot(vector<string> tableau)
    {
        int position = rand() % tableau.size();
        string motChoisis = tableau [position];
        return motChoisis;
    }
     
    double moyenne(vector<int> tableau, int taille)
    {
         double moyenneJeu (0);
         for (int I(0); I<tableau.size(); I++)
         {
             moyenneJeu += tableau[I];
         }
         moyenneJeu /= tableau.size();
         return moyenneJeu;
    }
     
     
    int main()
    {
       string motMystere, motMelange, motUtilisateur, reponseUtilisateur, oui("oui");
       int nbCoup(0), coupRestant, note(20), nbPartie(0), moyennePartie;
       vector<int> tableauMoyenne(0);
       vector<string> dictionnaire (0);
       do
       {
       //Initialisation des nombres aléatoires
       srand(time(0));
       nbPartie++;
     
     
       ifstream fichier("C:/Users/Maël/Desktop/Informatique/dico.txt");
        string motMystere;
     
       if(fichier)
       {
        fichier.seekg(0, ios::end);  //On se déplace à la fin du fichier
        int taille;
        taille = fichier.tellg();
        fichier.seekg(0, ios::beg);
        string dico;
        int position;
        while( std::getline( fichier, dico ))
        {
            dictionnaire.push_back( dico );
        }
        dictionnaire.close();
       }
       motMystere = choixMot(dictionnaire);
     
     
     
       cout << "voici le mot : " << motMystere;
       do
       {
     
          motMelange = melangerLettres(motMystere);
          cout << endl << "Quel est ce mot ? : " << motMelange << endl;
          cin >> motUtilisateur;
     
          if (motUtilisateur == motMystere)
          {
             cout << "Bravo !" << endl << endl;
          }
          else
          {
             cout << "Ce n'est pas le mot !" << endl;
             nbCoup++;
             coupRestant = 5 - nbCoup;
             note = (20/5)*coupRestant;
     
             if (coupRestant != 0)
             {
                 cout << "Il vous reste " << coupRestant << " essaie." << endl << endl;
             }
             else
             {
                 cout << endl << "Vous n'avez plus aucun essais, la reponse etait : " << motMystere << endl << endl;
             }
          }
     
       }while (motUtilisateur != motMystere && coupRestant !=0);
       //On recommence tant qu'il n'a pas trouvé
       cout << "votre note est : " << note << "/20" << endl;
       tableauMoyenne.push_back(note);
       int tailleT(tableauMoyenne.size());
       moyennePartie = moyenne(tableauMoyenne, tailleT);
       cout << "la moyenne de vos " << nbPartie << " partie est : " << moyennePartie << "/20" << endl << endl ;
     
       cout << "Voulez-vous refaire une partie ? oui ou non ?" << endl << endl;
       cin >> reponseUtilisateur;
        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;
       } while (reponseUtilisateur == oui);
     
        return 0;
    }
    Suite à cela mes "build messages" ne sont plus les même, et je ne comprend pas les messages du debugger
    Images attachées Images attachées    

  11. #11
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    J'ai pas hyper le temps

    Mais le petit bout de code de mon précédent message permet de remplacer tout ce qu'il y a dans l'accolade "if(fichier)"

    Après n'ayant jamais utilisé le débogueur, je ne saurait aider plus.

  12. #12
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Je viens de le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <vector>
    #include <fstream>
     
     
    using namespace std;
     
    string melangerLettres(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;
    }
     
    string choixMot(vector<string> tableau)
    {
        int position = rand() % tableau.size();
        string motChoisis = tableau [position];
        return motChoisis;
    }
     
    double moyenne(vector<int> tableau, int taille)
    {
         double moyenneJeu (0);
         for (int I(0); I<tableau.size(); I++)
         {
             moyenneJeu += tableau[I];
         }
         moyenneJeu /= tableau.size();
         return moyenneJeu;
    }
     
     
    int main()
    {
       string motMystere, motMelange, motUtilisateur, reponseUtilisateur, oui("oui");
       int nbCoup(0), coupRestant, note(20), nbPartie(0), moyennePartie;
       vector<int> tableauMoyenne(0);
       vector<string> dictionnaire (0);
       do
       {
       //Initialisation des nombres aléatoires
       srand(time(0));
       nbPartie++;
     
     
       ifstream fichier("C:/Users/Maël/Desktop/Informatique/dico.txt");
        string motMystere;
     
       if(fichier)
       {
     
        string dico;
     
        while( std::getline( fichier, dico ))
        {
            dictionnaire.push_back( dico );
        }
        dictionnaire.close();
       }
       motMystere = choixMot(dictionnaire);
     
     
     
       cout << "voici le mot : " << motMystere;
       do
       {
     
          motMelange = melangerLettres(motMystere);
          cout << endl << "Quel est ce mot ? : " << motMelange << endl;
          cin >> motUtilisateur;
     
          if (motUtilisateur == motMystere)
          {
             cout << "Bravo !" << endl << endl;
          }
          else
          {
             cout << "Ce n'est pas le mot !" << endl;
             nbCoup++;
             coupRestant = 5 - nbCoup;
             note = (20/5)*coupRestant;
     
             if (coupRestant != 0)
             {
                 cout << "Il vous reste " << coupRestant << " essaie." << endl << endl;
             }
             else
             {
                 cout << endl << "Vous n'avez plus aucun essais, la reponse etait : " << motMystere << endl << endl;
             }
          }
     
       }while (motUtilisateur != motMystere && coupRestant !=0);
       //On recommence tant qu'il n'a pas trouvé
       cout << "votre note est : " << note << "/20" << endl;
       tableauMoyenne.push_back(note);
       int tailleT(tableauMoyenne.size());
       moyennePartie = moyenne(tableauMoyenne, tailleT);
       cout << "la moyenne de vos " << nbPartie << " partie est : " << moyennePartie << "/20" << endl << endl ;
     
       cout << "Voulez-vous refaire une partie ? oui ou non ?" << endl << endl;
       cin >> reponseUtilisateur;
        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;
       } while (reponseUtilisateur == oui);
     
        return 0;
    }
    Mais les build messages d'erreur sont toujours les mêmes

  13. #13
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 121
    Billets dans le blog
    148
    Par défaut
    Il faut utiliser la cible "Debug" pour le debug, sinon on a aucune information sur le programme. Pour changer la cible, c'est l’ascenseur en haut, où il y a "Release".
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    L'erreur est "Program received SIGFPE, arithmetic exception". Ça veut dire erreur mathématique, genre division par zéro.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Par défaut
    Bonjour,
    Petit indice, mon compilateur ne connait pas la méthode "close" de la classe vector (ligne 77) pour l'instance "dictionnaire"...
    Bonne journée.

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

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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