Lire ligne par ligne un fichier texte en langage C

Signaler
Messages postés
117
Date d'inscription
vendredi 10 février 2006
Statut
Membre
Dernière intervention
30 mars 2012
-
Messages postés
4
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2009
-
Bonjour,
comment peut on lire ligne par ligne une fichier texte, existe il une fonction prédéfinis qui fait ça?
Merci pour toute participation

3 réponses

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
FILE *f = fopen("fichier","b");
char ligne[255];

if(f!=NULL)
   {
   while(fgets(ligne),sizeof(ligne),f))
      {
      ...
      }
   fclose(f);
   }
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
Oups, une petite erreur dans mon code :

FILE *f = fopen("fichier","r");
Messages postés
4
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
15 octobre 2009

//c'est pas mon code mais j'espère qu'il //repend à ta question


char *get_next_line (FILE *stream, char **pp_line)
{
if (stream != NULL && pp_line != NULL)
{
void *line = NULL;
char tmp[BUFSIZ] = "";
size_t size = 1;

*pp_line = NULL;
while (fgets (tmp, BUFSIZ, stream) != NULL)
{
size += BUFSIZ;
line = realloc (*pp_line, sizeof (**pp_line) * size);
if (line != NULL)
{
if (*pp_line == NULL)
{
((char *)line)[0] = '\0';
}
*pp_line = line;
line = NULL;
strcat (*pp_line, tmp);
if ((*pp_line)[strlen (*pp_line)-1] == '\n')
{
(*pp_line)[strlen (*pp_line)-1] = '\0';
break;
}
}
else
{
free (*pp_line), *pp_line = NULL;
}
}
}
return *pp_line;
}