Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mode d'ouverture d'un fichier

5 réponses
Avatar
programmation
Bonjour,

J'ai remarqu=E9 que =E0 chaque fois on appelle une fonction il y a une
ligne s'ajoute =E0 la fin. ceci c'est bon et =E0 la fin du programme
j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
les combinaisons.
Ceci gr=E2ce au mode de l'ouverture de fichier :
<code type=3D"c">fpR =3D fopen ("resultat.txt","a");</code>

Mais, lorsque je ex=E9cute le programme une autre fois, je remarque que
le contenu de l'ancienne ex=E9cution reste.

Je voudrais =E0 chaque ex=E9cution j'obtiens le contenu r=E9el du fichier
"resultat.txt" et donc pas du cumul

il y a un autre mode qui permet d'ajouter =E0 la fin du fichier et
ouvrir un nouveau fichier dans la prochaine ex=E9cution ?

Que proposez-vous ?

5 réponses

Avatar
xip
"programmation" a écrit dans le message de news:


Bonjour,



Bonjour,

J'ai remarqué que à chaque fois on appelle une fonction il y a une
ligne s'ajoute à la fin. ceci c'est bon et à la fin du programme
j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
les combinaisons.
Ceci grâce au mode de l'ouverture de fichier :
<code type="c">fpR = fopen ("resultat.txt","a");</code>



Je présume que tu veux dire que lorsque tu fais un fopen de ton fichier, tu
rajoute tes nouvelles entrées à la suite des anciennes d'une précédente
exécution, c'est ca ?
C'est normal puisque tu a donné "a" (comme "append") au mode d'ouverture du
fichier.

Si tu ne veux pas de ce mode, ne lui passe pas "a" mais juste "w"' si tu ne
veux juste qu'écrire dedans.

Mais, lorsque je exécute le programme une autre fois, je remarque que
le contenu de l'ancienne exécution reste.



normal

Je voudrais à chaque exécution j'obtiens le contenu réel du fichier
"resultat.txt" et donc pas du cumul
il y a un autre mode qui permet d'ajouter à la fin du fichier et
ouvrir un nouveau fichier dans la prochaine exécution ?



C'est pas très clair. Ou alors suivant tes appels a la fonction fopen il te
faut déterminer si tu veux ajouter a la fin (mode "a") ou créer un nouveau
fichier "vide" (mode "w") ou bien explique mieux ce que tu veux faire ;o)

fpR = fopen ("resultat.txt","w"); ou fpR = fopen ("resultat.txt","w+");

xip
Avatar
programmation
On 23 août, 18:56, "xip" wrote:
"programmation" a écrit dans le message de news :


> Bonjour,

Bonjour,

>J'ai remarqué que à chaque fois on appelle une fonction il y a une
>ligne s'ajoute à la fin. ceci c'est bon et à la fin du programme
>j'obtiens le fichier "resultat.txt" qui contient la liste de toutes
>les combinaisons.
>Ceci grâce au mode de l'ouverture de fichier :
><code type="c">fpR = fopen ("resultat.txt","a");</code>

Je présume que tu veux dire que lorsque tu fais un fopen de ton fichier , tu
rajoute tes nouvelles entrées à la suite des anciennes d'une préc édente
exécution, c'est ca ?
C'est normal puisque tu a donné "a" (comme "append") au mode d'ouvertur e du
fichier.

Si tu ne veux pas de ce mode, ne lui passe pas "a" mais juste "w"' si tu ne
veux juste qu'écrire dedans.

>Mais, lorsque je exécute le programme une autre fois, je remarque que
>le contenu de l'ancienne exécution reste.

normal

>Je voudrais à chaque exécution j'obtiens le contenu réel du fichie r
> "resultat.txt" et donc pas du cumul
>il y a un autre mode qui permet d'ajouter à la fin du fichier et
>ouvrir un nouveau fichier dans la prochaine exécution ?

C'est pas très clair. Ou alors suivant tes appels a la fonction fopen i l te
faut déterminer si tu veux ajouter a la fin (mode "a") ou créer un no uveau
fichier "vide" (mode "w") ou bien explique mieux ce que tu veux faire ;o)

fpR = fopen ("resultat.txt","w"); ou fpR = fopen ("resultat.txt","w+" );

xip



Bonsoir,

J'ajoute une ligne à la fin du fichier à chaque que j'appelle la
fonction pour cela je utilise le mode "a".
ceci c'est bon.

Mais, lorsque je lance une nouvelle exécution alors l'ancien contenu
de fichier reste et donc le nouveau contenu s'ajoute au ancien
contenu.
Ceci me dérange car je voulais que à chaque exécution j'ai le fichier
correspondant.

Merci.
Avatar
xip
"programmation" a écrit dans le message de news:


Bonsoir,



Bonsoir,

J'ajoute une ligne à la fin du fichier à chaque que j'appelle la
fonction pour cela je utilise le mode "a".
ceci c'est bon.



En fait, ce que tu veux, c'est conserver le contenu de ton "resultat.txt"
juste dans l'instance du prog en cours, et a la prochaine exécution une
"remise à zéro" du contenu.
(désolé c'est dimanche soir ;o) )

Mais, lorsque je lance une nouvelle exécution alors l'ancien contenu
de fichier reste et donc le nouveau contenu s'ajoute au ancien
contenu.
Ceci me dérange car je voulais que à chaque exécution j'ai le fichier
correspondant.



Dans ce cas, quand tu demarre ton programme, tu vérifie si ton fichier
resultat.txt est présent, et si c'est le cas, tu le supprime ou tu le
vide...

Sinon poste du code pour voir...

@+
xip
Avatar
programmation
> Dans ce cas, quand tu demarre ton programme, tu vérifie si ton fichier
resultat.txt est présent, et si c'est le cas, tu le supprime ou tu le
vide...



Bonjour,

Oui.
- Quels sont les fonctions permettant de supprimer totalement un
fichier sous windows ?
- Quels sont les fonctions permettant de vider le contenu d'un fichier
sous windows ?
Si il n'existe pas ces fonctions comment les programmer ?

Merci.
Avatar
xip
programmation" a écrit dans le message de news:


Bonjour,



Bonjour,

- Quels sont les fonctions permettant de supprimer totalement un
fichier sous windows ?



remove :

/* remove example: remove myfile.txt */
#include <stdio.h>

int main ()
{
if( remove( "myfile.txt" ) != 0 )
perror( "Error deleting file" );
else
puts( "File successfully deleted" );
return 0;
}
- Quels sont les fonctions permettant de vider le contenu d'un fichier
sous windows ?



un simple fopen avec w+ en mode devrait suffire je pense.

Si il n'existe pas ces fonctions comment les programmer ?



zen, ca existe ;o)

xip

ps : http://www.cplusplus.com/reference/