Bonjour,
J'ai un souci avec la concaténation de plusieurs fichiers textes dans un fichier. Voici le code plus bas et l'explication de ce que je souhaite réaliser avec ce programme (encore plus bas). >> étant débutant, la lecture demande un minimum d'indulgence! <<
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 #include <stdio.h> #include <stdlib.h> #define SORTIE "essai.dat" #include <dirent.h> int main(void) { int i; char fname[100]; for (i=1;i<3;i++) { sprintf(fname,"Vloc_Rloc.OUT.%d",i); FILE *vlocrloc=fopen(fname,"r"); FILE *traitement; int c; if (vlocrloc == NULL) { fprintf(stderr, "\nErreur: Impossible de lire le fichier %s\n",fname); return(EXIT_FAILURE); } if ((traitement = fopen(SORTIE,"w")) == NULL) { fprintf(stderr, "\nErreur: Impossible de lire le fichier %s\n",SORTIE); return(EXIT_FAILURE); } while ((c = fgetc(vlocrloc)) != EOF) { if (c == '!') { c = ' '; } else if (c == '=') { c = ' '; } else if (c == 'D') { c = 'e'; } putchar(c); putc(c,traitement); } } return(EXIT_SUCCESS); }
En fait, je souhaite lire les fichiers Vloc_Rloc.OUT.1,Vloc_Rloc.OUT.2 dans un fichier essai.dat tout en y apportant qqs modifications (utiles à un scanf du fichier obtenu dans un autre programme).
Mon programme semble fonctionner puisque mon terminal affiche bien les données des fichiers avec les modifications, mais l'écriture dans le fichier traitement échoue à la moitié, seules les données de mon premier fichier sont écrites dans essai.dat.
Je suis passé de fputc à putc sans succès. Tout comme l'ont été mes recherches sur ces deux fonctions. Que faire???
PS: je n'ai mis de fclose, parce que fname en argument ne passe pas.
Partager