Votre IP: 38.107.191.118 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 26-10-2007 00:00:00
Date de la dernière modification : 12-01-2008 15:56:51
C  Vous êtes dans : Langage C Astuces / Exercices

Ennoncé

Compter le nombre de lignes d'un fichier

Solution

#include <stdio.h>
int main()
{
  FILE *fic;
  unsigned int nb_ligne = 0;
  int c;

  if((fic = fopen("/home/lami20j/trash/fichier.txt","r"))
            == NULL)
    return -1;
  while((c = fgetc(fic)) != EOF){
    if(c == '\n')
  ++nb_ligne;
  }
  fclose(fic);
  printf("%d lignes\n",nb_ligne);
  return 0;
}

Explication

Pour compter le nombre de lignes d'un fichier il faut compter le nombre de caractères de fin de ligne.
Sous GNU/Linux le caractère de fin de ligne est \n.

En 1er temps nous ouvrons le fichier en lecture seule.
La variable compteur nb_ligne est initialisé avec la valeur zéro.
La boucle while((c = fgetc(fic)) != EOF) lit les caractères du fichier un par un, jusqu'à la fin du fichier (EOF - End Of File).
Pour lire les caractères nous utilisons la fonction fgetc.
Le caractère lu par fgetc nous le stockons dans la variable c.
Le caractère rencontré par fgetc est comparé à '\n'.
S'il est égal avec le caractère de fin de ligne '\n' alors la variable nb_ligne est incrementé d'une unité.
A la fin de la boucle (quand nous sommes arrivé à la fin de fichier), la variable nb_ligne contiendra le nombre de lignes du fichier.


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS