Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité de passage
    Homme Profil pro Amine miNov
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme Amine miNov

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 4
    Points : 4
    Points
    4

    Par défaut curseur dans un fichier

    bonjour !
    S.V.P , y a-t-il une différence entre rewind(fichier) & fseek(fichier , 0 ,0 ) ??

    merci de bien vouloir m'aider ^^

  2. #2
    Expert Confirmé
    Homme Profil pro Pierre
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 1 812
    Points : 3 772
    Points
    3 772

    Par défaut

    Mieux vaut utiliser fseek avec les constantes définies spécialement pour elle:
    ainsi fseek(file, 0, 0) équivaut à fseek(file, 0, SEEK_SET)

    La fonction rewind place le curseur au début du fichier et remet à 0 tous les drapeaux d'erreur. En cela, elle est équivalente à:
    Code :
    1
    2
    3
    4
    void rewind(FILE* file) {
        fseek(file, 0, SEEK_SET);
        clearerr(file);
    }
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • La plus sotte des questions est celle qu'on ne pose pas.

    Pour faire des graphes, essayez yEd.

  3. #3
    Membre confirmé

    Inscrit en
    décembre 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : décembre 2012
    Messages : 50
    Points : 226
    Points
    226

    Par défaut

    Bonjour,

    Lorsqu'on ouvre un fichier avec fopen, on obtient un flux. Le flux possède un indicateur de position dans le fichier ("curseur"), un indicateur de fin de fichier, et un indicateur d'erreur. On peut connaître la valeur de ces indicateurs grâce aux fonctions ftell, feof, et ferror, respectivement.

    Lorsque la fonction fseek rencontre une erreur de lecture ou d'écriture, elle met à une valeur non nulle l'indicateur d'erreur. Lorsque fseek ne rencontre pas d'erreur, elle ne modifie pas l'indicateur d'erreur.

    La fonction rewind ne se préoccupe pas des erreurs, elle met à zéro l'indicateur d'erreur quoi qu'il arrive.


    Une autre chose qui différencie ces deux fonctions est leur valeur de retour : rewind ne renvoie pas de valeur, alors que fseek renvoie 0 en cas de succès et -1 en cas d'échec.

  4. #4
    Invité de passage
    Homme Profil pro Amine miNov
    Étudiant
    Inscrit en
    janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Nom : Homme Amine miNov

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2012
    Messages : 4
    Points : 4
    Points
    4

    Par défaut

    bien reçu
    je vous remercie

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •