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"); }
Partager