A propos des pointeurs de fichier

dayvid75014 Messages postés 96 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 25 avril 2008 - 1 avril 2008 à 16:36
dayvid75014 Messages postés 96 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 25 avril 2008 - 2 avril 2008 à 09:39
Bonjour,

Je ne comprends pas pourquoi lorsque j'utilise un pointeur de fichier en dehors du main, cela me renvoie une erreur, comme si j'accédais à des endroits interdits ..
Bien sûr, si je réouvre le fichier pointé dans la fonction (càd en dehors du main), ça marche bien, mais le problème est qu'à chaque fois que je réouvre le fichier, ceci efface ce qui avait été inscrit dedans avant...

(pointeur de fichier texte pour écrire des données dedans)

Quelqu'un en connait la raison?

PS : c'est le même constat pour un autre pointeur de fichier vidéo

5 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 24
1 avril 2008 à 17:14
Bonjour.
Ce n'est pas evident de te repondre sans le code qui va avec pour ton problème de pointeur de fichier.
Pour ecrire dans un fichier sans tout effacer il faut utiliser le mode "append" "a".

cdt
0
dayvid75014 Messages postés 96 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 25 avril 2008
1 avril 2008 à 17:26
Merci Laurent

Où dois je mettre "append" ??
Pourrais tu m'écrire ceci sous forme d'exemple ?

Je te remercie. Bonne fin de journée.

Cordialement.
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 24
1 avril 2008 à 17:31
Voici un petit exemple :
#include <stdio.h>


int main ()
{
FILE * pFile;
pFile = fopen ("myfile.txt","a");
if (pFile!=NULL)
{
fputs ("fopen example",pFile);
fclose (pFile);
}
return 0;
}
et la liste des différent modes :


"r",
Open a file for reading. The file must exist.,

----

"w",
Create an empty file for writing. If a file with
the same name already exists its content is erased and the file is
treated as a new empty file.,

----

"a",
Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist.,

----

"r+",
Open a file for update both reading and writing. The file must exist.,

----

"w+",
Create an empty file for both reading and writing.
If a file with the same name already exists its content is erased and
the file is treated as a new empty file.,

----

"a+",
Open a file for reading and appending. All writing
operations are performed at the end of the file, protecting the
previous content to be overwritten. You can reposition (fseek, rewind)
the internal pointer to anywhere in the file for reading, but writing
operations will move it back to the end of file. The file is created if
it does not exist.
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
1 avril 2008 à 18:02
Il existe de la documentation complète sur toutes les fonctions du C/C++ standard, c'est pas fait pour les *ùé"'$.
http://www.cplusplus.com/reference/clibrary/
0

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

Posez votre question
dayvid75014 Messages postés 96 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 25 avril 2008
2 avril 2008 à 09:39
Toujours aussi courtois Luhtor...

Merci Laurent !!!
0