Lecture + écriture fichier .txt

Résolu/Fermé
Signaler
Messages postés
95
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
18 mai 2020
-
Messages postés
95
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
18 mai 2020
-
Bonjour,
Une question qui peut sembler bête, mais je souhaiterai comprendre (je débute).
Pourquoi ne puis je pas écrire au fur et a mesure de la lecture de mon fichier en travaillant en "r+"? (Je test une sorte de condition de remplacement)

Cela me turlupine d'autant plus qu'en plaçant un "rewind", je peux écrire, au début du fichier.

Une alternative consisterai à écrire dans un second fichier au fur et à mesure de la lecture du premier mais à quoi sert le "r+" dans ce cas.

Merci par avance pour les réponses.

code :

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fichier = NULL ;
fichier = fopen("entree.txt","r+") ;
if (fichier != NULL)
{
if (fgetc(fichier)==',')
{
fputc('.',fichier);
}
fclose(fichier) ;
}
else
{
printf("erreur de chargement de fichier") ;
}

return 0;
}


2 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 803
Bonjour,

Tu ne peux pas alterner entre lecture et écriture sans précaution.
Utilise fseek(fichier,0,SEEK_CUR); juste avant ton fputc().
Ca devrait être mieux.

Cdlt,
0
Messages postés
95
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
18 mai 2020
1
Merci pour les réponses
Avec fseek, effectivement, ça marche mais il faut pas mal jouer avec le curseur. J'ai finalement pris la méthode en écrivant dans un second fichier car cela me semble plus rapide mais surtout plus clair quand on relit le code.
0