Recherche de lignes répétés dans un fichier en C
Programme qui affiche les occurrences et les lignes d'un fichier en C.
Programme à réaliser :
Partie 1:
Le programme consiste à écrire un programme en C dont le but est : — si le nom d’un seul fichier figure sur la ligne de commande, d’afficher, pour chaque ligne de texte du fichier non vide possédant plusieurs occurrences dans le fichier, la suite strictement croissante des numéros de ligne auxquels elle se situe . L’affichage se fait sur deux colonnes. La première colonne est réservée à la suite des numéros de ligne, la deuxième, au contenu de la ligne répétée. Les numéros de ligne sont séparés par une virgule ;
Le résultat doit être :
$ ./programme fichier.txt
14,89 - la grande ville ;
21,55,101 - vouloir exister et vivre;
23,31 - vivre seul dans le village ;
Réalisation:
J'utiliser des listes , tables de hachages ( en fichier .c et .h ) pour stocker et afficher les lignes lues dans le fichier texte .
Problème:
dans le main.c :
Je n'arrive pas à lire ligne par ligne le fichier texte et comparer chaque ligne avec le reste des lignes du fichier, pour affiche les numéros de lignes et les lignes qui se répètent dans le fichier, comme ci dessus.
Mon souci est que je n'arrive à lire chaque ligne et voir s'il se répète ? à quelle numéro de ligne ?
Oui, le problème est de lire ligne par ligne un fichier qui en paramètre de ligne de commande et si une ligne se répète l'afficher comme ça :
$ ./programme fichier.txt // le fichier.txt est en paramètre de la ligne de commande sous linux
14,89 - la grande ville ; // la ligne "la grande ville" se répète 2 fois, à la ligne 14 et 89 du fichier .
21,55,101 - vouloir exister et vivre; // la ligne "vouloir exister et vivre" se répète 3 fois, à la ligne 21, 55 et 101 du fichier .
23,31 - vivre seul dans le village ; // la ligne "vivre seul dans le village" se répète 2 fois, à la ligne 23 et 31 du fichier .
En effet, j’utilise des fichiers liste.h, liste.c et tablehachage.c et tablehachage.h en plus du main.c.
Mon souci est que je n'arrive à lire chaque ligne et voir s'il se répète ? à quelle numéro de ligne ?