Lecture + écriture fichier .txt

Résolu/Fermé
Blackmind Messages postés 95 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 18 mai 2020 - 14 juil. 2013 à 10:24
Blackmind Messages postés 95 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 18 mai 2020 - 15 juil. 2013 à 13:50
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;
}


A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
14 juil. 2013 à 16:41
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
Blackmind Messages postés 95 Date d'inscription mardi 12 mai 2009 Statut Membre Dernière intervention 18 mai 2020 1
15 juil. 2013 à 13:50
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