Open In App

C program to append content of one text file to another

Improve
Improve
Like Article
Like
Save
Share
Report

Pre-requisite: File Handling in C
 

Given the source and destination text files, the task is to append the content from source file to destination file and then display the content of the destination file.
Examples: 
 

Input: 

file1.text
This is line one in file1
Hello World.
file2.text
This is line one in file2
Programming is fun.

Output: 
 
This is line one in file2
Programming is fun.
This is line one in file1
Hello World.


Approach: 

  1. Open file1.txt and file2.txt with “a+”(append and read) option, so that the previous content of the file is not deleted. If files don’t exist, they will be created.
  2. Explicitly write a newline (“\n”) to the destination file to enhance readability.
  3. Write content from source file to destination file.
  4. Display the contents in file2.txt to console (stdout). 
     

C




// C program to append the contents of
// source file to the destination file
// including header files
#include <stdio.h>
 
// Function that appends the contents
void appendFiles(char source[],
                 char destination[])
{
    // declaring file pointers
    FILE *fp1, *fp2;
 
    // opening files
    fp1 = fopen(source, "a+");
    fp2 = fopen(destination, "a+");
 
    // If file is not found then return.
    if (!fp1 && !fp2) {
        printf("Unable to open/"
               "detect file(s)\n");
        return;
    }
 
    char buf[100];
 
    // explicitly writing "\n"
    // to the destination file
    // so to enhance readability.
    fprintf(fp2, "\n");
 
    // writing the contents of
    // source file to destination file.
    while (!feof(fp1)) {
        fgets(buf, sizeof(buf), fp1);
        fprintf(fp2, "%s", buf);
    }
 
    rewind(fp2);
 
    // printing contents of
    // destination file to stdout.
    while (!feof(fp2)) {
        fgets(buf, sizeof(buf), fp2);
        printf("%s", buf);
    }
}
 
// Driver Code
int main()
{
    char source[] = "file1.txt",
         destination[] = "file2.txt";
 
    // calling Function with file names.
    appendFiles(source, destination);
 
    return 0;
}


Output: 

Below is the output of the above program: 
 

 

Time Complexity: O(N) 
Auxiliary Space Complexity: O(1) 

 



Last Updated : 24 Jul, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads