Partage
  • Partager sur Facebook
  • Partager sur Twitter

Sauter une ligne avec fseek ou une autre fonction

    25 février 2006 à 12:23:31

    J'ai lu le cours de matheo (bien foutu comme d'hab) et pas de problèmes j'ai compris comment avancer caractère par caractère avec fseek dans un fichier.

    Le problème c'est comment passer à la ligne suivante dans le fichier sachant qu'on ne sait pas forcément combien il y a de caractère à la première ligne (genre la première ligne contient un nom et la deuxième son score mais on sait pas si le nom est constitué de 3 ou 12 lettres, d'où le problème pour changer que le score; enfin c'est un exemple à la con mais j'espère que vous comprenez le blocage :p )

    Si vous connaissez une fonction faite pour ça ça serait simpa (car oui j'imagine qu'on peut compter les caractère à la première ligne puis avancer mais bon c'est moins pratique).

    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      25 février 2006 à 12:42:49

      Citation : Nix6800

      J'ai lu le cours de matheo (bien foutu comme d'hab) et pas de problèmes j'ai compris comment avancer caractère par caractère avec fseek dans un fichier.


      Tu ne peux pas faire ça sur un FILE de type texte.

      Citation

      Le problème c'est comment passer à la ligne suivante dans le fichier sachant qu'on ne sait pas forcément combien il y a de caractère à la première ligne (genre la première ligne contient un nom et la deuxième son score mais on sait pas si le nom est constitué de 3 ou 12 lettres, d'où le problème pour changer que le score; enfin c'est un exemple à la con mais j'espère que vous comprenez le blocage :p )

      Si vous connaissez une fonction faite pour ça ça serait simpa (car oui j'imagine qu'on peut compter les caractère à la première ligne puis avancer mais bon c'est moins pratique).


      while (fgetc(fp) != '\n')
      ;
      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2006 à 13:46:52

        J'ai pas trop comprit comment ça marche ta solution.

        J'aimerait juste que le "curseur" qui permet de définir sa position dans le fichier saute une ligne.
        • Partager sur Facebook
        • Partager sur Twitter
          25 février 2006 à 13:54:01

          Il n'y a pas de fonction pour sauter à la ligne suivante.
          En revanche, tu peux faire un fgetc tant que tu n'es pas arrivé à un \n (une entrée).

          Le while proposé par rz0 lit tous les caractères un à un jusqu'à l'\n
          Tu auras remarqué qu'il y a une ligne avec juste un point-virgule : c'est normal, ça s'appelle une instruction vide (qui ne fait rien).

          En clair, si à un endroit de ton code tu mets :

          while (fgetc(fp) != '\n')
          ;

          Ca amènera ton curseur à la prochaine ligne :)
          fp est ton pointeur sur fichier bien sûr ;)
          • Partager sur Facebook
          • Partager sur Twitter

          If you'd like to join us, read "How do we work at OpenClassrooms"! :)

            25 février 2006 à 14:15:25

            A oki, c'est bon. J'avais pas compris le coup du point virgule.

            Merci beaucoup !
            • Partager sur Facebook
            • Partager sur Twitter

            Sauter une ligne avec fseek ou une autre fonction

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown