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");

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

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

	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");

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

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

	while((ch = fgetc(f1)) != EOF)

	while((ch = fgetc(f2)) != EOF)

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


	return 0;


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