Computer >> Computer tutorials >  >> Programming >> C programming

C Program for copying the contents of one file into another file


File is a collection of records (or) is a place on hard disk, where data is stored permanently. By using C commands, we can access the files in different ways.

Operations on files

The operations that can be carried out on files in C language are as follows −

  • Naming the file.
  • Opening the file.
  • Reading from the file.
  • Writing into the file.
  • Closing the file.

Syntax

The syntax for opening and naming file is as follows −

FILE *File pointer;

For example, FILE * fptr;

File pointer = fopen ("File name”, "mode”);

For example, fptr = fopen ("sample.txt”, "r”);

FILE *fp;
fp = fopen ("sample.txt”, "w”);

The syntax for reading from file is as follows −

int fgetc( FILE * fp );// read a single character from a file

The syntax for writing into file is as follows −

int fputc( int c, FILE *fp ); // write individual characters to a stream

With the help of these functions, we can copy the content of one file into another file.

Example

Following is the C Program for copying the contents of one file into another file −

#include <stdio.h>
#include <stdlib.h> // For exit()
int main(){
   FILE *fptr1, *fptr2;
   char filename[100], c;
   printf("Enter the filename to open for reading \n");
   scanf("%s",filename);
   // Open one file for reading
   fptr1 = fopen(filename, "r");
   if (fptr1 == NULL){
      printf("Cannot open file %s \n", filename);
      exit(0);
   }
   printf("Enter the filename to open for writing \n");
   scanf("%s", filename);
   // Open another file for writing
   fptr2 = fopen(filename, "w");
   if (fptr2 == NULL){
      printf("Cannot open file %s \n", filename);
      exit(0);
   }
   // Read contents from file
   c = fgetc(fptr1);
   while (c != EOF){
      fputc(c, fptr2);
      c = fgetc(fptr1);
   }
   printf("\nContents copied to %s", filename);
   fclose(fptr1);
   fclose(fptr2);
   return 0;
}

Output

When the above program is executed, it produces the following result −

Enter the filename to open for reading
file3.txt
Enter the filename to open for writing
file1.txt
Contents copied to file1.txt