Bonjour,
J'ai écris un simple petit programme qui recopie le contenu d'un fichier dans un autre.
Il prend donc en paramètre le nom du fichier à copier.
Je me demandais où il fallait placer le feof().
Dans les FAQ il est mit après la boucle while qui parcourt le fichier.
Moi je l'ai mis dedans.
Est-ce que celà a-t-il un sens ?
Moi j'estime qu'il faut tester que tout ailles bien avant chaque lecture d'une nouvelle ligne.
Merci.
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 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <errno.h> 4 5 #define LEN 200 6 7 int main(int argc, char** argv ){ 8 9 FILE* fi_in ; 10 FILE* fi_out ; 11 char* ligne ; 12 13 ligne = malloc( sizeof(char)*LEN ); 14 if( ( fi_in = fopen(argv[1], "r" ) ) == NULL ){ 15 fprintf(stderr,"Erreur fopen de fi_in %d\n", errno); 16 exit (1) ; 17 } 18 if( (fi_out = fopen("fichierOut.txt","w+" )) == NULL){ 19 fprintf(stderr,"Erreur fopen de fi_out %d\n", errno); 20 exit(2); 21 } 22 23 while( ( fgets( ligne, LEN, fi_in ) != NULL ) ){ 24 if( feof(fi_in) ){ 25 exit (3) ; 26 fprintf(stderr, "Erreur de fin de fichier %d\n", errno); 27 } 28 fputs(ligne, fi_out); 29 } 30 fclose(fi_in); 31 fclose(fi_out); 32 33 }
Partager