You are here

C program to merge two files

C program to merge two files and store their contents in another file. The files which are to be merged are opened in "read" mode and the file which contains content of both the files is opened in "write" mode. To merge two files first we open a file and read it character by character and store the read contents in the merged file then we read the contents of another file and store it in merged file, we read two files until EOF (end of file) is reached.

C programming code

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   FILE *fs1, *fs2, *ft;
 
   char ch, file1[20], file2[20], file3[20];
 
   printf("Enter name of first file\n");
   gets(file1);
 
   printf("Enter name of second file\n");
   gets(file2);
 
   printf("Enter name of file which will store contents of the two files\n");
   gets(file3);
 
   fs1 = fopen(file1, "r");
   fs2 = fopen(file2, "r");
 
   if(fs1 == NULL || fs2 == NULL)
   {
      perror("Error ");
      printf("Press any key to exit...\n");
      exit(EXIT_FAILURE);
   }
 
   ft = fopen(file3, "w"); // Opening in write mode
 
   if(ft == NULL)
   {
      perror("Error ");
      printf("Press any key to exit...\n");
      exit(EXIT_FAILURE);
   }
 
   while((ch = fgetc(fs1)) != EOF)
      fputc(ch,ft);
 
   while((ch = fgetc(fs2)) != EOF)
      fputc(ch,ft);
 
   printf("The two files were merged into %s file successfully.\n", file3);
 
   fclose(fs1);
   fclose(fs2);
   fclose(ft);
 
   return 0;
}

Download merge files program.

Output of program:
Merge two files C program output