
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Merge contents of two files into a third file using C
In C language, file handling is used for various file actions such as to write, read, merge, etc.
Merging Contents of Two Files into a Third File
To merge the contents of two files into a third file, you need to open the first two files (whose content will be merged into the third file) in read mode and the third file in write mode. After opening the files, read the contents of the first file and write them to the third file, and similarly with the second file and appending them to the third file.Example Scenario
Imagine these are the files:
File 1: java.txt is having initial content "Java is a programing language." File 2: kotlin.txt is having initial content "kotlin is a programing language." File 3: Output file (ttpoint.txt is having initial content as blank)
Following is the output is as follows:
files are merged ttpoint.txt will have final content as "Java is a programing language. kotlin is a programing language."
Algorithm
Following is the algorithm to merge contents of two files into a third file using C
Begin Declare a[] array to the character datatype. Initialize a[] = "Java is a programing language.". Declare i of the integer datatype. Initialize i =0. Declare f1 as a pointer to the FILE type. Open a file "java.txt" to perform write operation using f1 pointer. while (a[i] != '\0') call fputc(a[i], f1) to put all data of a[] into f1 file object i++ Close the f1 file pointer. Declare a[] array to the character datatype. Initialize b[] = " kotlin is a programing language.". Declare i of the integer datatype. Initialize j =0. Declare f2 as a pointer to the FILE type. Open a file "kotlin.txt" to perform write operation using f2 pointer. while (b[j] != '\0') call fputc(b[j], f1) to put all data of b[] into f2 file object j++ Close the f2 file pointer. Open a file "java.txt" to perform read operation using f1 pointer. Open a file "ttpoint.txt" to perform write operation using f2 pointer. Declare f3 as a pointer to the FILE datatype. Open a file "ttpoint.txt" to perform write operation using f3 pointer. Declare a variable "c" to the character datatype. if (f1 == NULL || f2 == NULL || f3 == NULL) then print "couldn't open the file." Exit. While ((c = fgetc(f1)) != EOF) do Put all data of "c" variable into f3 file pointer using fputc() function. while ((c = fgetc(f2)) != EOF) do Put all data of "c" variable into f3 file pointer using fputc() function. Call fclose(f3) function to close the file pointer. Open the file ttpoint.txt using f3 file pointer. Print "Merged java.txt and python.txt into ttpoint.txt" while (!feof(f3)) Call putchar(fgetc(f3)) function to print the content of f3 file pointer. Close the f1 file pointer. Close the f2 file pointer. Close the f3 file pointer. End.
C Program to Merge Contents of Two Files into a Third File
The program writes two strings into separate files as 'java.txt' and 'kotlin.txt', then reads both and merges their contents into a third file 'ttpoint.txt' and display the output of the merged content of file 1 and file 2 into file 3:
#include <stdio.h> #include <stdlib.h> int main() { char a[] = "Java is a programing language."; int i=0; FILE *f1; // Open two files to be merged f1 = fopen("java.txt", "w"); while (a[i] != '\0') { fputc(a[i], f1); i++; } fclose(f1); char b[] = "kotlin is a programing language."; int j =0; FILE *f2; f2 = fopen("kotlin.txt", "w"); while (b[j] != '\0') { fputc(b[j], f2); j++; } fclose(f2); f1 = fopen("java.txt", "r"); f2 = fopen("kotlin.txt", "r"); FILE *f3 = fopen("ttpoint.txt", "w"); // Open file to store the result char c; if (f1 == NULL || f2 == NULL || f3 == NULL) { puts("Could not open files"); exit(0); } while ((c = fgetc(f1)) != EOF) // Copy contents of first file to ttpoint.txt fputc(c, f3); while ((c = fgetc(f2)) != EOF) // Copy contents of second file to ttpoint.txt fputc(c, f3); fclose(f3); f3 = fopen("ttpoint.txt", "r"); printf("Merged java.txt and kotlin.txt into ttpoint.txt\n"); while (!feof(f3)) putchar(fgetc(f3)); fclose(f1); //closing the file pointer. fclose(f2); fclose(f3); return 0; }
Following is the output to the above program:
Merged java.txt and kotlin.txt into ttpoint.txt Java is a programing language.kotlin is a programing language.
Advertisements