Lire la nième ligne d'un fichier texte

boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012 - 14 juin 2007 à 17:36
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 16 juin 2007 à 21:34
Bonjour à tous !

J'aurais voulu savoir comment lire la nième ligne d'un fichier texte en C.

Que dois-je utiliser ? fgets? je dois me deplacer avec fseek ?

Merci de m'aider

4 réponses

cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
14 juin 2007 à 17:46
Ce que tu dois savoir c'est que un retour a la ligne pour un fichier texte est codé par 0x0D 0x0A.
Donc tout ce que tu as a faire c'est creer un compteur qui parcourt le texte et qui s'incremente à chaque fois que ta lecture lit un 0x0D 0x0A

D] Adeon [8D]
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
15 juin 2007 à 11:50
Quand on veut coder lisible on dit '\r' et '\n' si j'etais toi je ne compterais que les '\n' car les fichiers
ne sont pas forcement ecrits avec le '\r' et le '\n' mais parfois seulement le second ( sous nunux par exemple.. )

sinon
tu fais
char res[2000];
for(int i = 0 ; i < n ; i++)
   fgets(res,2000,mon_handle);

voila
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
16 juin 2007 à 21:32
Bonjour,

Juste pour information, pour une telle opération je me sert d'une autre technique.

La voici :

int ligne = 9;
char *token;
token = strtok(buffer, "\r\n");
for(i=0 ; i< ligne-1 ; ++i) {
   token = strtok(NULL, "\r\n");
}

<hr />

Merci d'avance et à bientôt.

Nico
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
16 juin 2007 à 21:34
Oups j'ai oublié de précisé que buffer contenait le fichier(son contenu).

Ciao










Nico
0
Rejoignez-nous