Bonjour, je débute en c++ , et je suis confronté à un curieux problème. je souhaite connaitre le nombre de mots d'un fichier txt. j'ai donc testé le code suivant:
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
 
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
 
    ifstream fMots("mots.txt");
    if(fMots)
    {
        cout << "Tout est pret pour la lecture." << endl;
    }
    else
    {
        cout<< "ERREUR: Impossible d'ouvrir le fichier en lecture." << endl;
    }
    int n;
    string ligne;
    while (fMots >> ligne)
    {
        n+=1;
    }
    cout << n << endl;
    return 0;
}
Et là, au lieu de m'afficher "9" dans la console ( il y a neuf mot dans mon fichier ) ça m'affiche "4661617"

Par contre, si je modifie ma boucle while et que je rajoute un " cout << n << endl;" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    while (fMots >> ligne)
    {
        n+=1;
        cout << n << endl;
    }
Là ça marche...
Bon le truc, c'est que je voudrais comprendre pourquoi...

Merci pour votre aide