Fichier

Fermé
mast20 Messages postés 12 Date d'inscription mercredi 2 mars 2016 Statut Membre Dernière intervention 1 mai 2016 - 26 mars 2016 à 16:42
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 1 avril 2016 à 18:52
Bonjour,
svp est ce que quelqu un peut m aider a ecrire une fonction qui recopie un fichier dans un autre


2 réponses

baladur13 Messages postés 47089 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 20 décembre 2024 13 498
26 mars 2016 à 16:46
Bonjour
Les forums de CCM n'ont pas pour vocation de faire vos devoirs à votre place..

A consulter
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

Montrez ce que vous avez fait... et vous aurez des conseils pour modifications éventuelles.
0
mast20 Messages postés 12 Date d'inscription mercredi 2 mars 2016 Statut Membre Dernière intervention 1 mai 2016
28 mars 2016 à 17:44
est ce que j ai ecrit est correct ??
void copier (char *source, char *desti)
{FILE *f1 ,*f2 ; char x;
fp1=fopen(source,"r");
if (f1==NULL) {printf("erreur!!!!!!");exit(1);}
fp2=fopen(desti,"w");
if (f2==NULL) {printf("erreur!!!!!!") ;fclose(f1) ;exit(1); }
do
{x=fgetc(f1);
fputc(x,f2);
}while(x!=EOF(f1));
fclose(f1);fclose(f2);
}
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
1 avril 2016 à 18:52
Bonjour,
C'est pas trop mal.
Commentaires dans le code
void copier( const char *source, const char *desti ) // const car les noms ne seront jamais modifiés ici 
{
   FILE *fp1 ,*fp2;
   int x;  // entier plutôt que char pour pouvoir détecter la fin de fichier par EOF
   fp1 = fopen( source , "rb" );  // ouvrir le fichier en binaire sinon certains octets risquent d'être perdus
   if ( fp1 == NULL ) { printf("erreur!!!!!!"); exit(1); } 
   fp2 = fopen( desti , "wb" );   // ouvrir le fichier en binaire
   if ( fp2 == NULL ) { printf("erreur!!!!!!"); fclose(fp1); exit(1); } 
   while ( ( x = fgetc( fp1 ) ) != EOF ) 
   {
      // sinon la dernière lecture du EOF serait recopiée dans fp2!
      fputc( x , fp2 ); 
   } 
   fclose( fp2 );
   fclose( fp1 ); 
}
0