bonjour,
J'aimerais dénombrer les mots d'un file, tout en étant évitant certaines erreurs qui viendrait fausser le résultat.
En cherchant sur internet, je suis souvent tombé sur différente variante de la fonction suivante, mais ce qui me dérange c'est que dans le cas de figure où tu as une ligne vide ou la dernière ligne sans '\n', ton résultat est faussé.
En cherchant de mon côté, J'ai tenté ma chance avec fscanf et j'obtiens finalement la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int WordCounterBIS(FILE *pFile) { int numbWord = 0; char readedCharacter = '0'; while ((readedCharacter = fgetc(pFile)) != EOF) { if (readedCharacter == '\n') numbWord++; } return numbWord; }
Y a-t-il d'autres approches?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int WordCounter(FILE *pFile) { int numbWord = 0, attribution = 0; char readedWord[100]; while ((attribution = fscanf(pFile,"%s", readedWord)) != EOF) { if (attribution == 1) numbWord++; } return numbWord; }
Cordialement,
Red'
Partager