In this post, we will write a Program to merge two files and store the output on the third file.
Logic:
- The files which are to be merged are opened in “read” mode.
- 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.
- Now we have both the files merged into the third file.
Now let’s write the program for the same.
C Program to merge two files and store the output into another file:
#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;
}
SAMPLE OUTPUT:
Enter name of first file date.c Enter name of seconds file factorial.c Enter name of file which will store content of two files date-factorial.c Two files were merged into date-factorial.c file successfully.
Comment if you have any issue or concerns.
