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:
- 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.
- Explicitly write a newline ("\n") to the destination file to enhance readability.
- Write content from source file to destination file.
- Display the contents in file2.txt to console (stdout).
// 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)