Introduction
In this lab, we will create a C program to copy the content of one file to another file. We will read from the source file and write the contents to the destination file.
File Structure
Create a new C file named main.c
. This file will contain the program logic.
Include the necessary libraries
We need to include the stdio.h
library in our program to work with files.
#include <stdio.h>
Declare file pointers
We need to declare two file pointers, one for the source file and one for the destination file.
FILE *fp1, *fp2;
Open source file
We need to open the source file for reading. If the file cannot be opened, we will print an error message and exit the program.
if ((fp1 = fopen("source.txt", "r")) == NULL) {
printf("\nFile cannot be opened.");
return;
}
Open destination file
We need to create and open the destination file for writing.
fp2 = fopen("destination.txt", "w");
Copy file contents
We will read the source file character by character and write into the destination file until the end of the file is reached.
char ch;
while ((ch = fgetc(fp1)) != EOF) {
fputc(ch, fp2);
}
Close the files
After copying the contents, we need to close both the files.
fclose(fp1);
fclose(fp2);
Summary
In this lab, we learned how to read contents of one file and write them to another file. We used the fopen()
function to open files and fgetc()
and fputc()
functions to read and write file contents. It is essential to close the files after completing the task using the fclose()
function.
๐ Practice Now: Program Copy File
Want to Learn More?
- ๐ณ Learn the latest C Skill Trees
- ๐ Read More C Tutorials
- ๐ฌ Join our Discord or tweet us @WeAreLabEx
Top comments (1)
Copying files character-by-character is really inefficient. Any real-world program needs to accept the file to be copied via command-line arguments as well as check for errors.