Lecture + écriture fichier .txt
Résolu
Blackmind
Messages postés
111
Statut
Membre
-
Blackmind Messages postés 111 Statut Membre -
Blackmind Messages postés 111 Statut Membre -
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;
}
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
-
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, -
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.