Probleme avec fseek

Résolu
Signaler
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005
-
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010
-
Bonjour, j'ai un probleme avec le fseek, il ne me met pas au debt du fichier

FILE *fp;
fp = fopen("C:\\essai.txt", "a");
fseek (fp, 0L, SEEK_SET);
fprintf(fp,"%f,%f\n",a,b);
fclose(fp);

Pouvez vous me dire ce qui ne va pas
Merci

9 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Petite précision :

"r+"
Opens for both reading and writing. (The file must exist.)

=> il faudra tester l'existence du fichier avant et le créer avec le mode "w" s'il n'existe pas.
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Salut Loupiti

a mon avis c a cause de ton mode d'ouverture du fichier

'a' correspond a l'ouverture en ecriture en fin de fichier.

Pour lire des info utilise "r", sinon pour la lecture ecriture utilise "r+" ou "a+"

Oto
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
When a file is opened with the "a" or "a+" access type, all write operations occur at the end of the file. The file pointer can be repositioned using fseek or rewind, but is always moved back to the end of the file before any write operation is carried out. Thus, existing data cannot be overwritten.

=> tu aura beau déplacer le pointeur par fseek, les données eeront quand mêm écrite à la fin. si tu veux écrire au début ouvre le fichier en mode "w" simple.
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005

Merci a vous, mais quand je l'ouvre en "w" le contenu est effacé!!
Il faut tout recuperer avant, je vois pas trop l'interet de fseek alors ??
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Exact, pour conserver le contenu actuel, ouvre-le en mode "r+".

Note que si tu déplace le pointeur de fichier au début et que tu écrit quelque chose à cet endroit, cel ne va pas insérer des données mais écraser ce qui s'y trouve
Messages postés
27
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
20 janvier 2005

Merci ymca2003,
je venais juste d'essayer avec "r+" et c vrai que ca efface ce que t'avais avant sur la ligne, ca m'arranche lol

Ciao ;-)
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Avec a+ tu n'as pas ce probleme, si le fichier n'existe pas, il est cree automatiquement

Oto
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
C'était justement le mode "a" (ou "a+") son problème car dans ce mode, on ne peut pas écrire ailleurs qu'à la fin du fichier.
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

ha oui, fichtre, suis bete moa

A+ lecture ecriture en fin de fichier seulement, dsl pour l'erreur, heureusement ymca2003 etait la .

donc en fait test d'existence obligé

encore dsl

Oto