dénombrer les mots d'un file
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é.
Code:
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;
} |
En cherchant de mon côté, J'ai tenté ma chance avec fscanf et j'obtiens finalement la fonction suivante :
Code:
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;
} |
Y a-t-il d'autres approches?
Cordialement,
Red'