Bonjour,

Je débute et je me retrouve avec un problème que je ne comprend pas... J'ai un fichier Texte dans lequel il y a un mot par ligne, je veux compter le nombre de mots (Ceci ne me pose aucun problème). Ensuite je veux relancer la même boucle pour me positionner sur un mot aléatoire de cette liste et clairement mon code ne rentre pas dans la seconde, je ne comprend pas pourquoi.

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
 
ifstream fichier("motsMysteres.txt");  //Ouverture d'un fichier en lecture
    if(fichier)
    {
        string mot; // lecture d'un mot
        int ligneAleatoireFichier(0); //entier aléatoire correpondant à un mot dans le fichier;
        int nbMot(0); // variable pour le nombre de mot dans le fichier initialisé à 0
        //int nbCaractere(0); // variable pour déterminer le nombre de caractère initialisée à 0
        cout << "Recherche d'un mot. Patientez";
        while (getline(fichier, mot)) // on compte de nombre de ligne dans le fichier
            nbMot++;
            //cout << mot << endl;
        ligneAleatoireFichier = rand() % nbMot; // on détermine un numéro de ligne aléatoirement dans le fichier
        fichier.seekg(0, ios::beg);
        nbMot = 0;
        while (getline(fichier, mot)) // on compte de nombre de ligne dans le fichier, donc le nombre de mot
        {
            nbMot++;
            cout << mot << endl;
            fichier >> mot;
            if (nbMot == ligneAleatoireFichier)
                break;
        }
        cout << " Mot #" << ligneAleatoireFichier <<  " : " << mot << endl;
 
        return mot; // on renvoie le mot sélectionné aléatoirement
    }
    else
    {
        cout << "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl;
        return "ERR Fichier";
    }
Merci par avance pour votre aide précieuse.