[C] - Probleme de fgets dans boucle !

Résolu
Bonjour,

Je rencontre un petit problème dans le cadre de l'utilisation de la fonction fgets() aprés une boucle while:

Lors du premier passage dans la boucle, tout fonctionne a merveille, mais lorsque je repasse une seconde fois dans cette boucle while, le fgets est toujours en position finale et ne s'effectue plus.

Partie de code:

while (cpt_verbose <= 5)
{
while (fgets(ligne, LONG, entree) != NULL)
{
//traitement
}
}

Ce que je recherche simplement, c'est une méthode pour "réinitialiser" le fgets() et ainsi continuer d'effectuer mes traitements.

Merci!
Estydral
Configuration: Linux
Firefox 3.5.6

3 réponses

  1. Je regarde de suite !

    EDIT: Ça fonctionne nickel, merci pour cette réponse rapide et précise ;)
    0
    1. Salut,

      Un exemple

      lami20j@debian-acer:~/c$ cat fic.txt 
      ligne1
      ligne2
      ligne3
      lami20j@debian-acer:~/c$ cat lire.c 
      #include<stdio.h>
      #include<stdlib.h>
      
      int main()
      {
        FILE* fic;
        int i=0;
        char s[20];
        if(NULL==(fic=fopen("fic.txt","r")))
          return EXIT_FAILURE;
        while(i<3){
          while(fgets(s,19,fic)!=NULL)
            printf("%s",s);
          printf("************ fin passage %d **************\n",i);
          i+=1;
          rewind(fic);
        }
        return EXIT_SUCCESS;
      }
      
      lami20j@debian-acer:~/c$ gcc -Wall lire.c
      lami20j@debian-acer:~/c$ ./a.out 
      ligne1
      ligne2
      ligne3
      ************ fin passage 0 **************
      ligne1
      ligne2
      ligne3
      ************ fin passage 1 **************
      ligne1
      ligne2
      ligne3
      ************ fin passage 2 **************
      lami20j@debian-acer:~/c$ 
      
      0