Associer un numero à chaque ligne lu dans le fichier

Fermé
varley Messages postés 66 Date d'inscription samedi 19 janvier 2013 Statut Membre Dernière intervention 28 septembre 2018 - Modifié par varley le 11/11/2015 à 13:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 12 nov. 2015 à 23:55
bonjour,
quelqu'un peut t'il m'aider j'aimerai associé un numéro à chaque ligne lu de mon fichier text telque

toto 1
rir 2

voici mon code

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX_LONG 1000

int main(){

char ligne[MAX_LONG] = "";
FILE* ptr=NULL;
ptr=fopen("fichier.txt","r+");
if(ptr!=NULL){
while(fgets(ligne,MAX_LONG,ptr) !=NULL){
printf("%s",ligne);
}

}else{
printf("impossible de lire dans le fichier");
}
fclose(ptr);
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
11 nov. 2015 à 13:38
Bonjour,

Tu souhaites que le numéro de ligne soit affiché dans la console ou que le fichier soit modifié ?

Cdlt,
0
varley Messages postés 66 Date d'inscription samedi 19 janvier 2013 Statut Membre Dernière intervention 28 septembre 2018 12
12 nov. 2015 à 03:04
que le fichier soit modifie
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
12 nov. 2015 à 23:55
Bonjour,

Ok. Dans ce cas, tu crées un buffer de taille MAX_LONG + X (avec X le nombre de digits maximum de ton nombre. Par exemple X=7.

Ensuite, dans ta boucle while, au lieu de ton printf(), tu utilises sprintf() pour concaténer ligne avec ton nombre. Par exemple : sprintf(buffer, "%s %d", ligne, nombre); et tu écris buffer dans un fichier temporaire.

A la fin de ton while, il te suffira juste de supprimer le fichier et de renommer le temporaire.

Cdlt,
0