Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/12/2012, 08h16   #1
amiNeVip
Invité de passage
 
Homme Amine miNov
Étudiant
Inscription : 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 ^^
amiNeVip est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2012, 09h22   #2
leternel
Expert Confirmé
 
Homme Pierre
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 1 361
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 361
Points : 2 877
Points : 2 877
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.
leternel est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/12/2012, 10h01   #3
Julien Sanchez
Membre éclairé
 
Avatar de Julien Sanchez
 
Homme Julien Sanchez
Étudiant
Inscription : décembre 2012
Messages : 50
Détails du profil
Informations personnelles :
Nom : Homme Julien Sanchez
Âge : 25
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2012
Messages : 50
Points : 391
Points : 391
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.
__________________
Un logiciel est libre si vous avez le droit d'étudier son code source, de le modifier et de le redistribuer.
GNU/Linux est un logiciel libre, alors que Windows et Mac OS ne le sont pas. (aide)
Julien Sanchez est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/12/2012, 10h42   #4
amiNeVip
Invité de passage
 
Homme Amine miNov
Étudiant
Inscription : 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
bien reçu
je vous remercie
amiNeVip est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h06.


 
 
 
 
Partenaires

Hébergement Web