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 :
Merci par avance pour votre aide précieuse.
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"; }
Partager