#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { FILE *fp_output,*fp_exp; char s[100]; CopyFile("input.txt", "output.txt", FALSE); fp_exp= fopen("exp.txt","r"); fp_output= fopen("output.txt","a"); fprintf(fp_output,"\n"); while(fgets(s,100,fp_exp)) fprintf(fp_output,"%s",s); fclose(fp_output); flcose(fp_exp); return 0; }
while( !feof(fp_exp) ) { char buffer[4096]; unsigned int read = fread( buffer, fp_exp, 1, 4096 ); unsigned int write = fwrite( buffer, fp_output, 1, read ); if( read != write ) { /* gestion erreur ecriture */ } }
int main() { FILE *fp_output,*fp_exp; char s[100]; // CopyFile("input.txt", "output.txt", FALSE); // ??? fp_exp= fopen("exp.txt","r"); fp_output= fopen("output.txt","a"); fprintf(fp_output,"\n"); while( !feof(fp_exp) ) { char buffer[4096]; unsigned int read = fread( buffer, fp_exp, 1, 4096 ); unsigned int write = fwrite( buffer, fp_output, 1, read ); if( read != write ) { /* gestion erreur ecriture */ } } fclose(fp_output); flcose(fp_exp); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionchar buffer[4096];
if( read != write )
{
/* gestion erreur ecriture */
}
void CopieDefichierEntier( FILE* parInput, FILE* parOutput ) // cette fonction copie tout le contenu de parInput dans parOutput { while( !feof(fp_exp) ) // feof return 0 si on as pas encore atteint la fin du fichier est (!=0) sinon { char buffer[4096]; // on lit 4096 octets qui se trouve dans le fichier que l'on met dans buffer // la fonction fread renvoie le nombre d'octets effectivement lus unsigned int read = fread( buffer, fp_exp, 1, 4096 ); // on écrit dans le fichier output le buffer que l'on vient de lire dans le fichier input // la fonction fwrite retourne le nombre d'octet effectivement écrit unsigned int write = fwrite( buffer, fp_output, 1, read ); // si on as pas écrit le même nombre d'octet que l'on a lus c'est qui c'est passé une erreur lors de l'écriture if( read != write ) { // gestion erreur d'ecriture. exemple : fprintf( "Erreur ecriture fichier !!" ); exit(0); } // on boucle jusqu'a ce que tout le fichier input soit copier dans output } } int main() { FILE *fp_input,*fp_output,*fp_exp; // ouverture des différent fichiers fp_input = fopen("input.txt","r" ); // ouverture en lecture fp_exp = fopen("exp.txt","r"); // ouverture en lecture fp_output= fopen("output.txt","w");// ouverture en écriture supprime le contenu si il existe // copie du 1er fichier input dans output CopieDefichierEntier( fp_input, fp_output ); // copie du 2eme fichier exp dans output CopieDefichierEntier( fp_exp, fp_output ); // on ferme propement tous les handles de fichier ouvert fclose(fp_input); flcose(fp_exp); fclose(fp_output); return 0; }