How to read a file in C? You already know what a file is and their types (text/binary (audio/images/video etc.)). When a computer is off, they are present on the hard disk.
Suppose you made a C program last week to sort numbers, and you wish to see the program again. How do you do it? You locate the file on the system and open it in an IDE/text editor. That is cool! But what's more interesting is to open the file through your program.
For simplicity, we discuss reading text files only.
Let's write a C program to open a file from a hard disk whose name is entered by a user and to display its contents on the screen. Opening a file means we bring the file contents from disk to RAM to perform operations (read/modify/append a file) on it. The file must be present in the directory in which the executable file of the program exists.
Function fopen is used to open a file; it returns a pointer to structure FILE, which is a predefined structure in the "stdio.h" header file. If the file opening is successful, then it returns a pointer to the file, and if it's unable to open it, then it returns NULL.
Function fgetc returns a character read from the file, and the fclose function closes the file.
Read file in C using fopen
C programming code to open a file and print its contents on screen.
#include <stdlib.h>
int main()
{
char ch, file_name[25];
FILE *fp;
printf("Enter name of a file you wish to see\n");
gets(file_name);
fp = fopen(file_name, "r"); // read mode
if (fp == NULL)
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
printf("The contents of %s file are:\n", file_name);
while((ch = fgetc(fp)) != EOF)
printf("%c", ch);
fclose(fp);
return 0;
}
Read file C program output:
Download Read file program.
There are blank lines present at the end of the file. In our program, we have opened only one file. You can open multiple files in a single program, in different modes as required.
File handling is essential when we wish to store data permanently on a storage device. All variables and data of a program are lost when it terminates. If the data is required later, we need to store it in a file.