Concatenate Two Files in C Programming

In this tutorial, we shall learn to use File Pointers to concatenate two files. Often there could be situations when a single large file could not be sent over network or generated by a program, resulting in file parts. To merge these file parts, we can use C programming language.

Following is a list of high level steps that are applied in the C program to merge two files.

To concatenate two files in C Programming :

  • Open the files which we want to merge, using fopen()
  • Read the content of each file character by character using fgetc()
  • Store the read content in the output file using fputc()
  • At the end, content of two files will be merged and will be stored output file.

Example – Concatenate Two Files

In the following program, we will concatenate two files file1 and file2, and store the result in file3.

C Program

#include <stdio.h>
#include <stdlib.h>

int main() {
	FILE *f1, *f2, *f3;

	char ch, file1[30], file2[30], file3[30];

	printf("Enter name of first file\n");
	gets(file1);

	printf("Enter name of second file\n");
	gets(file2);

	printf("Enter name of the output files\n");
	gets(file3);

	f1 = fopen(file1, "r");   //opening the file for reading.
	f2 = fopen(file2, "r");

	if(f1 == NULL || f2 == NULL) {
		perror("Error ");
		printf("Press any key to exit...\n");
		exit(EXIT_FAILURE);
	}

	f3 = fopen(file3, "w");          // Opening in write mode

	if(f3 == NULL) {
		perror("Error ");
		printf("Press any key to exit...\n");
		exit(EXIT_FAILURE);
	}

	while((ch = fgetc(f1)) != EOF)
		fputc(ch,f3);

	while((ch = fgetc(f2)) != EOF)
		fputc(ch,f3);

	printf("The two files were merged into %s file successfully.\n", file3);

	fclose(f1);
	fclose(f2);
	fclose(f3);

	return 0;
}
ADVERTISEMENT

Conclusion

In this C Tutorial – we have learnt to concatenate two file using File Pointers of C Programming.