Quel est le problème dans ce code ?
J'ecris un programme qui me permette de modifier les informations incluses dans un fichier texte.
Le fichier texte contient deux colonnes, une avec les noms des objets et une autre avec leur valeu associée.
Voici le code que j'ecris
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
FILE* CFG;
CFG=fopen(fichCFG,"rt+"); //? il faut que j'ouvre le fichier en modification
if(CFG !=NULL) // on réussi à lire le fichier (il existe)
{
char valeur[32]; // valeur devant le mot clef
char valtmp[4];
char oneword[32];
int egalite=0;
while(!feof(CFG)) // tant qu'on a pas atteint la fin du fichier
{
fscanf(CFG,"%s",oneword);
if(strcmp(oneword, "MotRecherche") == 0) //le mot est trouvé
{
fprintf(CFG,"%s ",ValeurduMot);
// --j'ai aussi essayé
//------------ fwrite(ValeurduMot,sizeof(ValeurduMot),1,CFG);
egalite=1;
}
} |
Lorsque j'execute ce programme, egalite prend la valeur 1, ce qui veut dire que le mot recherché est trouvé.
Mais, je ne comprend pas pourquoi il la nouvelle valeur du mot (ValeurduMot)?
En fait, s'il veut ecrire, devra ecrire à la place de l'ancienne valeur, est ce cela le problème ?
Voici un exemple du contenu de mon fichier txt.
une colonne pour le mot recherché et une deuxième pour sa valeur
- NomDuHero Tom
Puissance 4
Age 36
CodeArme 37
CodeLangue FR
....
La valeur du mot et connue
la valeur du mot bien connue car en mode debug,
je réussi à voir la valeur de mon mot.
à quoi sert l'instruction fopen (fichier,"r+")
Je pensais que l'instruction fopen (fichier,"r+"); permettait d'ecrire et de modifier à la fois un fichier.
C'est possible que cela soit le problème dans mon code en ce moment, je serai effectivement obligé de faire le programme en deux etapes.
Mais franchement, a quel moments peut-on utiliser le fopen (fichier,"r+"); ?