Probleme avec fseek

Résolu
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005 - 20 janv. 2005 à 13:35
otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010 - 20 janv. 2005 à 14:35
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 janv. 2005 à 14:19
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.
3
otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010
20 janv. 2005 à 13:51
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
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 janv. 2005 à 13:53
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.
0
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005
20 janv. 2005 à 14:10
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 ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 janv. 2005 à 14:17
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
0
loupiti Messages postés 27 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 20 janvier 2005
20 janv. 2005 à 14:25
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 ;-)
0
otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010
20 janv. 2005 à 14:27
Avec a+ tu n'as pas ce probleme, si le fichier n'existe pas, il est cree automatiquement

Oto
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
20 janv. 2005 à 14:30
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.
0
otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010
20 janv. 2005 à 14:35
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
0
Rejoignez-nous