bonjour
je suis débutante en programmation,
je voudrais faire une lecture d'un fichier et affiché dans un autre
merci de bien vouloir m'aider
bonjour
je suis débutante en programmation,
je voudrais faire une lecture d'un fichier et affiché dans un autre
merci de bien vouloir m'aider
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
voila mon code j'ai un fichier existant" gr ",et j'ai créer un autre fichier" seq " qui va lire lig par lig de "gr",comment je fais svp ?
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 #include <stdlib.h> #include <stdio.h> #define Taille_max 1000 // Tableau de taille 1000 int main(int argc, char *argv[]) { FILE* fichier = NULL; FILE* seq=NULL; char chaine[Taille_max] = "" ; float *vecteur; float *nbr; float *vectSeq; int i; char nom; fichier = fopen("gr.txt", "r"); seq = fopen("seq.txt", "w"); //if (fichier != NULL) /*{ fgets(chaine ,Taille_max, seq); printf("%s", chaine); // On l'affiche*/ fclose(fichier); return 0; }
Voir les commentaires et compléter
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 #define Taille_max 1000 // Tableau de taille 1000 int main(int argc, char *argv[]) { FILE* fichier = NULL; FILE* seq=NULL; char chaine[Taille_max] = "" ; ... fichier = fopen("gr.txt", "r"); // seq = fopen("seq.txt", "w"); inutile d'ouvrir et de fermer si fichier est NULL if (fichier != NULL) { seq = fopen("seq.txt", "w"); if(seq != NULL) //tester aussi l'ouverture du second fichier { // fgets(chaine ,Taille_max, seq); seq est en écriture ! utiliser fichier // tester le retour de fgets pour savoir lorsqu'on est arrivé à la fin du fichier while(fgets(chaine ,Taille_max, fichier) != NULL) { // recopier chaine dans seq (voir fputs) } // fermer le fichier seq } fclose(fichier); } return 0; }
Voici une proposition:
Thierry
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 #include <stdlib.h> #include <stdio.h> #include <string.h> #define TAILLE_MAX 10 /* Elimine le caractere de fin de ligne saisi par fgets() et fait le menage dans le tampon du flux entrant en cas de saisie tronquee */ static int fclean(char *buffer, FILE *fp) { int err = 0; if (buffer != NULL && fp != NULL) { char *pc = strchr(buffer, '\n'); if (pc != NULL) { *pc = 0; } else { int c; while ((c = fgetc(fp)) != '\n' && c != EOF) { } err = 1; } } return err; } int main(void) { FILE* fichier = NULL; FILE* seq = NULL; int ret = EXIT_SUCCESS; fichier = fopen("gr.txt", "r"); if (fichier != NULL) { seq = fopen("seq.txt", "w"); if (seq != NULL) { int compteur = 0; char chaine[TAILLE_MAX] = ""; /* On lit le fichier ligne par ligne temps que la fin de fichier n'est pas atteinte (ou alors erreur de lecture) */ while (fgets(chaine, sizeof chaine, fichier) != NULL) { compteur++; if (fclean(chaine, fichier) == 0) { /* On affiche chaque ligne sur le flux de sortie standard */ puts(chaine); /* On copie chaque ligne dans le fichier seq */ fputs(chaine, seq); } else { puts(chaine); fprintf(stderr, "AVERTISSEMENT: La ligne %u a ete tronquee!\n", (unsigned) compteur); } } /* Si la fin de fichier n'a pas ete rencontree, c'est qu'il y a eu une erreur de lecture */ if (feof(fichier) == 0) { fprintf(stderr, "Une erreur de lecture est intervenue!\n"); ret = EXIT_FAILURE; } fclose(seq), seq = NULL; } else { fprintf(stderr, "Impossible d'ouvrir le fichier seq.txt!\n"); ret = EXIT_SUCCESS; } fclose(fichier), fichier = NULL; } else { fprintf(stderr, "Impossible d'ouvrir le fichier gr.txt!\n"); ret = EXIT_FAILURE; } return ret; }
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Voilà une base correcte pour démarrer.
Ce qui donne chez moi :
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 #include <stdlib.h> #include <stdio.h> #define TAILLE_MAX 1000 int main (void) { #define F_IN "gr.txt" #define F_OUT "seq.txt" FILE *fichier = fopen (F_IN, "r"); if (fichier != NULL) { FILE *seq = fopen (F_OUT, "w"); if (seq != NULL) { char chaine[TAILLE_MAX]; fgets (chaine, sizeof chaine, seq); printf ("%s", chaine); fclose (seq); } else { perror (F_OUT); } fclose (fichier); } else { perror (F_IN); } return 0; }
évidemment...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 gr.txt: No such file or directory Press ENTER to continue.
Partager