Bonjour,

Je suis débutante en C et suis confrontée à un problème. Je veux lire le contenu d'un fichier f1 et avant de le copier dans f2, changer un caractère c1 (s'il existe) en c2.
Je réussit à lire le fichier sans problème. Je réussit à écrire dans un fichier sans problème.
Merci pour toute aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
void copierEnModifiant (char * Fichier1, char * Fichier2, char c1, char * c2)
{
    	FILE * fileSource;
    	FILE * fileCible;
 
	fileSource = fopen(Fichier1, "r");
	fileCible = fopen(Fichier2, "w");
 
	if (fileSource == NULL)
    	{
        printf("Erreur de Lecture");
   	]
 
	printf("LE fichier a été ouvert\n");
 
	if (fileCible == NULL)
	{
        printf("Erreur de Creation");
	   fclose(fileSource);
	}
 
      printf("Le fichier a été créé\n");
 
 
	while (fgets(ligne, sizeof ligne, fileSource))
    	{
        //Comment tester l'existence du caractere c1 dans ligne ici et le remplacer par c2 avant de le copier dans f2?
 
       // Ce test que j'ai mis en commentaire ne marche pas
 
      /*int i;
        for (i = 0; i < strlen(ligne); i++)
	{
		if(ligne[i] == c1)
				ligne[i] = c2;
        }*/
 
	   fputs(ligne, fileCible);
 
    	}
 
 
    fclose(fileSource);
    fclose(fileCible);	
	//return 0;
}
 
 
int main(void)
{
    char * Fichier1 = "f1.txt";
    char * Fichier2 = "f2.txt";
 
    copierEnModifiant (Fichier1, Fichier2, "t", "y");
}