A propos des pointeurs de fichier

Signaler
Messages postés
96
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
25 avril 2008
-
Messages postés
96
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
25 avril 2008
-
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

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
25
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
Messages postés
96
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
25 avril 2008

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.
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
25
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.
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
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/
Messages postés
96
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
25 avril 2008

Toujours aussi courtois Luhtor...

Merci Laurent !!!