0% found this document useful (0 votes)
154 views

File Handling in C

File handling in C allows programs to create, read, update, and delete files stored on the local file system. Key functions for file handling include fopen() to open a file, fprintf() and fscanf() to write and read from files, fputc() and fgetc() to write and read single characters, and fclose() to close files. An example demonstrates storing employee data like ID, name, and salary entered by the user into a file.

Uploaded by

lekha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views

File Handling in C

File handling in C allows programs to create, read, update, and delete files stored on the local file system. Key functions for file handling include fopen() to open a file, fprintf() and fscanf() to write and read from files, fputc() and fgetc() to write and read single characters, and fclose() to close files. An example demonstrates storing employee data like ID, name, and salary entered by the user into a file.

Uploaded by

lekha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

File Handling in C

In programming, we may require some specific input data to be generated several numbers of
times. Sometimes, it is not enough to only display the data on the console. The data to be
displayed may be very large, and only a limited amount of data can be displayed on the console,
and since the memory is volatile, it is impossible to recover the programmatically generated
data again and again. However, if we need to do so, we may store it onto the local file system
which is volatile and can be accessed every time. Here, comes the need of file handling in C.

File handling in C enables us to create, update, read, and delete the files stored on the local file
system through our C program. The following operations can be performed on a file.

o Creation of the new file


o Opening an existing file
o Reading from the file
o Writing to the file
o Deleting the file

Functions for file handling


There are many functions in the C library to open, read, write, search and close the file. A list of
file functions are given below:

No. Function Description

1 fopen() opens new or existing file

2 fprintf() write data into the file

3 fscanf() reads data from the file

4 fputc() writes a character into the 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: fopen()


We must open a file before it can be read, write, or update. The fopen() function is used to open
a file. The syntax of the fopen() is given below.

1. FILE *fopen( const char * filename, const char * mode );  

The fopen() function accepts two parameters:

o The file name (string). If the file is stored at some specific location, then we must mention
the path at which the file is stored. For example, a file name can be
like "c://some_folder/some_file.ext".
o The mode in which the file is to be opened. It is a string.

We 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

The fopen function works in the following way.

o Firstly, It searches the file to be opened.


o Then, it loads the file from the disk and place it into the buffer. The buffer is used to
provide efficiency for the read operations.
o It sets up a character pointer which points to the first character of the file.

Consider the following example which opens a file in write mode.

1. #include<stdio.h>  
2. void main( )  
3. {  
4. FILE *fp ;  
5. char ch ;  
6. fp = fopen("file_handle.c","r") ;  
7. while ( 1 )  
8. {  
9. ch = fgetc ( fp ) ;  
10. if ( ch == EOF )  
11. break ;  
12. printf("%c",ch) ;  
13. }  
14. fclose (fp ) ;  
15. }  
Output

The content of the file will be printed.

#include;
void main( )
{
FILE *fp; // file pointer
char ch;
fp = fopen("file_handle.c","r");
while ( 1 )
{
ch = fgetc ( fp ); //Each character of the file is read and stored in the
character file.
if ( ch == EOF )
break;
printf("%c",ch);
}
fclose (fp );
}

Closing File: fclose()


The fclose() function is used to close a file. The file must be closed after performing all the
operations on it. The syntax of fclose() function is given below:

1. int fclose( FILE *fp );  

C fprintf() and fscanf()

Writing File : fprintf() function


The fprintf() function is used to write set of characters into file. It sends formatted output to a
stream.

Syntax:

1. int fprintf(FILE *stream, const char *format [, argument, ...])  
Example:

1. #include <stdio.h>  
2. main(){  
3.    FILE *fp;  
4.    fp = fopen("file.txt", "w");//opening file  
5.    fprintf(fp, "Hello file by fprintf...\n");//writing data into file  
6.    fclose(fp);//closing file  
7. }  

Reading File : fscanf() function


The fscanf() function is used to read set of characters from file. It reads a word from the file and
returns EOF at the end of file.

Syntax:

1. int fscanf(FILE *stream, const char *format [, argument, ...])  

Example:

1. #include <stdio.h>  
2. main(){  
3.    FILE *fp;  
4.    char buff[255];//creating char array to store data of file  
5.    fp = fopen("file.txt", "r");  
6.    while(fscanf(fp, "%s", buff)!=EOF){  
7.    printf("%s ", buff );  
8.    }  
9.    fclose(fp);  
10. }  

Output:

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.

1. #include <stdio.h>  
2. void main()  
3. {  
4.     FILE *fptr;  
5.     int id;  
6.     char name[30];  
7.     float salary;  
8.     fptr = fopen("emp.txt", "w+");/*  open for writing */  
9.     if (fptr == NULL)  
10.     {  
11.         printf("File does not exists \n");  
12.         return;  
13.     }  
14.     printf("Enter the id\n");  
15.     scanf("%d", &id);  
16.     fprintf(fptr, "Id= %d\n", id);  
17.     printf("Enter the name \n");  
18.     scanf("%s", name);  
19.     fprintf(fptr, "Name= %s\n", name);  
20.     printf("Enter the salary\n");  
21.     scanf("%f", &salary);  
22.     fprintf(fptr, "Salary= %.2f\n", salary);  
23.     fclose(fptr);  
24. }  

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

C fputc() and fgetc()

Writing File : fputc() function


The fputc() function is used to write a single character into file. It outputs a character to a
stream.

Syntax:

1. int fputc(int c, FILE *stream)  

Example:

1. #include <stdio.h>  
2. main(){  
3.    FILE *fp;  
4.    fp = fopen("file1.txt", "w");//opening file  
5.    fputc('a',fp);//writing single character into file  
6.    fclose(fp);//closing file  
7. }  

file1.txt

Reading File : fgetc() function


The fgetc() function returns a single character from the file. It gets a character from the stream. It
returns EOF at the end of file.

Syntax:

1. int fgetc(FILE *stream)  
Example:

1. #include<stdio.h>  
2. #include<conio.h>  
3. void main(){  
4. FILE *fp;  
5. char c;  
6. clrscr();  
7. fp=fopen("myfile.txt","r");  
8.   
9. while((c=fgetc(fp))!=EOF){  
10. printf("%c",c);  
11. }  
12. fclose(fp);  
13. getch();  
14. }  

myfile.txt

this is simple text message

C fputs() and fgets()


The fputs() and fgets() in C programming are used to write and read string from stream. Let's
see examples of writing and reading file using fgets() and fgets() functions.

Writing File : fputs() function


The fputs() function writes a line of characters into file. It outputs string to a stream.

Syntax:

1. int fputs(const char *s, FILE *stream)  

Example:

1. #include<stdio.h>  
2. #include<conio.h>  
3. void main(){  
4. FILE *fp;  
5. clrscr();  
6.   
7. fp=fopen("myfile2.txt","w");  
8. fputs("hello c programming",fp);  
9.   
10. fclose(fp);  
11. getch();  
12. }  

myfile2.txt

hello c programming

Reading File : fgets() function


The fgets() function reads a line of characters from file. It gets string from a stream.

Syntax:

1. char* fgets(char *s, int n, FILE *stream)  

Example:

1. #include<stdio.h>  
2. #include<conio.h>  
3. void main(){  
4. FILE *fp;  
5. char text[300];  
6. clrscr();  
7.   
8. fp=fopen("myfile2.txt","r");  
9. printf("%s",fgets(text,200,fp));  
10.   
11. fclose(fp);  
12. getch();  
13. }  
Output:

hello c programming

C fseek() function
The fseek() function is used to set the file pointer to the specified offset. It is used to write data
into file at desired location.

Syntax:

1. int fseek(FILE *stream, long int offset, int whence)  

There are 3 constants used in the fseek() function for whence: SEEK_SET, SEEK_CUR and
SEEK_END.

Example:

1. #include <stdio.h>  
2. void main(){  
3.    FILE *fp;  
4.   
5.    fp = fopen("myfile.txt","w+");  
6.    fputs("This is javatpoint", fp);  
7.     
8.    fseek( fp, 7, SEEK_SET );  
9.    fputs("sonoo jaiswal", fp);  
10.    fclose(fp);  
11. }  

myfile.txt

This is sonoo jaiswal

C rewind() function
The rewind() function sets the file pointer at the beginning of the stream. It is useful if you have
to use stream many times.

Syntax:
1. void rewind(FILE *stream)  

Appending an existing file


Open file in a (append file) mode and store reference to fPtr using fPtr = fopen(filePath,
"a"); . Input data to append to file from user, store it to some variable say dataToAppend . Write
data to append into file using fputs(dataToAppend, fPtr); . Finally close file to save all changes.

File permissions and rights


When a file is created its permissions are restricted by the umask of the process that created it.
...
Permissions
 The read permission grants the ability to read a file. ...
 The write permission grants the ability to modify a file. ...
 The execute permission grants the ability to execute a file.

changing permissions and rights.

1. Login to your computer as an admin. ...


2. Right-click on the file or folder you want to change permissions and select Properties. ...
3. Select the Security tab. ...
4. Select the user you want to modify permissions and then click Edit.
5. To add a new user or group click on Edit and then Add.
6. Click Advanced and then Find now.

You might also like