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