How to merge two files in C Language

[ad 1]

This c program merges two files and stores 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 another file then we read the contents of another file and store it in file, we read two files until EOF (end of file) is reached.

Open file “first” and file “second” in read mode using the fopen function; also open file “merged” in write mode using the fopen function; then read from files “first” and “second” and write what you read to file “merged”; then close all three files and you are done.

I’m sure there are more details involved that may or may not require pointers, depending on the exact nature of your assignment, but these basic steps do not use them.

C programming Source 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 filen");
   gets(file1);

   printf("Enter name of second filen");
   gets(file2);

   printf("Enter name of file which will store contents of two filesn");
   gets(file3);

   fs1 = fopen(file1,"r");
   fs2 = fopen(file2,"r");

   if( fs1 == NULL || fs2 == NULL )
   {
      perror("Error ");
      printf("Press any key to exit...n");
      getch();
      exit(EXIT_FAILURE);
   }

   ft = fopen(file3,"w");

   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("Two files were merged into %s file successfully.n",file3);

   fclose(fs1);
   fclose(fs2);
   fclose(ft);

   return 0;
}

Leave a Reply