Lire ligne par ligne un fichier texte en langage C

infodaoudi Messages postés 117 Date d'inscription vendredi 10 février 2006 Statut Membre Dernière intervention 30 mars 2012 - 27 févr. 2009 à 08:54
cs_mathabd Messages postés 4 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 15 octobre 2009 - 15 oct. 2009 à 02:46
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

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

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

FILE *f = fopen("fichier","r");
0
cs_mathabd Messages postés 4 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 15 octobre 2009
15 oct. 2009 à 02:46
//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;
}
0
Rejoignez-nous