File Handling
File Handling in c language is used to open, read, write, search or close file. It is used for permanent storage.
Advantage of File
It will contain the data even after program exit. Normally we use variable or array to store data, but data is lost after program exit. Variables and arrays are non-permanent storage medium whereas file is permanent storage medium.
Functions for file handling
There are many functions in C library to open, read, write, search and close file. A list of file functions are given below:
No. | Function | Description |
---|---|---|
1 | fopen() | opens new or existing file |
2 | fprintf() | write data into file |
3 | fscanf() | reads data from file |
4 | fputc() | writes a character into file |
5 | fgetc() | reads a character from file |
6 | fclose() | closes the file |
7 | fseek() | sets the file pointer to given position |
8 | fputw() | writes an integer to file |
9 | fgetw() | reads an integer from file |
10 | ftell() | returns current position |
11 | rewind() | sets the file pointer to the beginning of the file |
Opening File
The fopen() function is used to open a file. The syntax of fopen() function is given below:
- FILE *fopen( const char * filename, const char * mode );
You can use one of the following modes in the fopen() function.
Mode | Description |
---|---|
r | opens a text file in read mode |
w | opens a text file in write mode |
a | opens a text file in append mode |
r+ | opens a text file in read and write mode |
w+ | opens a text file in read and write mode |
a+ | opens a text file in read and write mode |
rb | opens a binary file in read mode |
wb | opens a binary file in write mode |
ab | opens a binary file in append mode |
rb+ | opens a binary file in read and write mode |
wb+ | opens a binary file in read and write mode |
ab+ | opens a binary file in read and write mode |
Closing File
The fclose() function is used to close a file. The syntax of fclose() function is given below:
- int fclose( FILE *fp );
Writing File : fprintf() function
The fprintf() function is used to write set of characters into file.
- #include <stdio.h>
- main(){
- FILE *fp;
- fp = fopen("file.txt", "w");//opening file
- fprintf(fp, "Hello file by fprintf...\n");//writing data into file
- fclose(fp);//closing file
- }
Reading File : fscanf() function
The fscanf() function is used to read set of characters from file.
- #include <stdio.h>
- main(){
- FILE *fp;
- char buff[255];//creating char array to store data of file
- fp = fopen("file.txt", "r");
- fscanf(fp, "%s", buff);//reading data of file and writing into char array
- printf("Data is : %s\n", buff );//printing data of char array
- fclose(fp);
- }
Output:
Data is : Hello file by fprintf...
C File Example: Storing employee information
Let's see a file handling example to store employee information as entered by user from console. We are going to store id, name and salary of the employee.
- #include <stdio.h>
- void main()
- {
- FILE *fptr;
- int id;
- char name[30];
- float salary;
- fptr = fopen("emp.txt", "w+");/* open for writing */
- if (fptr == NULL)
- {
- printf("File does not exists \n");
- return;
- }
- printf("Enter the id\n");
- scanf("%d", &id);
- fprintf(fptr, "Id= %d\n", id);
- printf("Enter the name \n");
- scanf("%s", name);
- fprintf(fptr, "Name= %s\n", name);
- printf("Enter the salary\n");
- scanf("%f", &salary);
- fprintf(fptr, "Salary= %.2f\n", salary);
- fclose(fptr);
- }
Output:
Enter the id 1 Enter the name sonoo Enter the salary 120000
Now open file from current directory. For windows operating system, go to TC\bin directory, you will see emp.txt file. It will have following information.
emp.txt
Id= 1 Name= sonoo Salary= 120000