SquiZZ | EpoK a écrit :
nop j'ai pensé a compter le dernier mot
c'est aléatoire défois 3 défois 50
proposé vos algo
|
tu peux aussi poster ton code et un exemple de fichier a traiter en donnant ce que tu attends et ce que tu obtiens.
Sinon, en utilisant strtok
Code :
- #include "stdlib.h"
- #include "string.h"
- int main(int argc, char* argv[])
- {
- FILE *fichier;
- int nb_lignes, nb_caracteres, nb_mots;
- char tampon[128];
- if(argc != 2)
- {
- printf("erreur nombre arguments\n" );
- return -1;
- }
- fichier = fopen(argv[1], "r" );
- if(!fichier)
- {
- printf("erreur ouverture fichier\n" );
- return -2;
- }
- //init variables
- nb_lignes = 0;
- nb_caracteres = 0;
- nb_mots = 0;
- while(fgets(tampon, 128, fichier))
- {
- char *token ;
- nb_lignes++;
- nb_caracteres += strlen(tampon);
- token = strtok(tampon, " \t" ); // on prend en compte les tabulations
- while(token)
- {
- nb_mots++;
- token = strtok( NULL, " \t" );
- }
- }
- fclose(fichier);
- printf("lignes : %d caractères : %d mots : %d\n", nb_lignes, nb_caracteres, nb_mots);
- return 0;
- }
|
ca compte les retour chariot comme dans le nombre de caractères
|