C Program to Read the Content of a File and Display It

In this article, you will learn and get code to read a file and display its content on the screen using a C program. The file must be present inside the current directory, which is the directory where your C programs are being saved.

Things to Do Before the Program

Before executing the program given below that reads and displays a file, a file must be created. Therefore, a file was created, as mentioned in the previous program, "Read a File," named codescracker.txt, with the following content:

Hello C
This is a textual file
The name of this file is codescracker.txt

This file must be saved in the folder where you are going to save the program given below. I'm going to save the program in the "c programs" folder of the Documents directory. Therefore, the file codescracker.txt was also saved here (as mentioned in the previous program). Here is a screenshot of the "c programs" folder. The textual file is available in this folder:

read and display file content c

Read and Display a File's Content in C

To read and display a file's content in C programming, you have to first open that file by using the fopen() function. This function takes two arguments, which are

  1. file name
  2. file opening mode

In file-opening mode, we have to use "r," which tells the compiler to open the file in reading mode only. Now start reading the file's content and then display the content on the output as shown in the program given below:

The following C program asks the user to enter the file name to read and display its content on the screen:

#include<stdio.h>
#include<conio.h>
int main()
{
    char fname[20], str[500];
    FILE *fp;
    printf("Enter the Name of File: ");
    gets(fname);
    fp = fopen(fname, "r");
    if(fp==NULL)
        printf("Error Occurred while Opening the File!");
    else
    {
        fscanf(fp, "%[^\0]", str);
        printf("\nContent of File is:\n\n");
        printf("%s", str);
    }
	fclose(fp);
    getch();
    return 0;
}

This program was built and runs in the Code::Blocks IDE. Here is its sample run:

c program read and display file content

Now enter the name of the file, say codescracker.txt, and press the ENTER key to see the content of this file, as shown in the snapshot given below:

c read file display content

Note: If you want to save this source code in the folder where the textual file gets created, then refer to the previous program. There, you will get the complete details.

Note: The %[^\0] (second argument) of the fscanf() function indicates that the file's content will be read until a null-terminated character occurs. In other words, read all the content of the file.

Remember to use the fclose() function to close the file pointer after the operation is finished.

Only show the first line's content of a file in C

Here is the program to only display the first line's content from the file that the user will enter at run-time:

#include<stdio.h>
#include<conio.h>
int main()
{
    char fname[20], str[200];
    FILE *fp;
    printf("Enter the Name of File: ");
    gets(fname);
    fp = fopen(fname, "r");
    if(fp==NULL)
        printf("Error Occurred while Opening the File!");
    else
    {
        fscanf(fp, "%[^\n]", str);
        printf("\nFile's Content at First Line:\n\n");
        printf("%s", str);
    }
    fclose(fp);
    getch();
    return 0;
}

Here is the sample run:

c program display file content

As you can see, this program is very similar to the very first program in this article. The only change is in the second parameter of the fscanf() function. That is, we have placed \n in place of 0\0to read the content of the file until a new line character occurs, in place of a null-terminated character. Everything else is the same.

The size of str gets decreased and initialized with 200, assuming that the characters present in the first line of the file entered by the user are not more than 200 characters.

Read and print the file's content, character by character

This program does the same job as the very first program in this article. But instead of reading the whole content at once using the fscanf() function, here we have used the fgetc() function to read the content of a file in a character-by-character manner. That is, read the first character and print it, then read the second character and print it, and so on.

#include<stdio.h>
#include<conio.h>
int main()
{
    char fname[20], ch;
    FILE *fp;
    printf("Enter the Name of File: ");
    gets(fname);
    fp = fopen(fname, "r");
    if(fp==NULL)
        printf("Error Occurred while Opening the File!");
    else
    {
        printf("\nFile's Content is:\n\n");
        ch = fgetc(fp);
        while(ch!=EOF)
        {
            printf("%c", ch);
            ch = fgetc(fp);
        }
    }
    fclose(fp);
    getch();
    return 0;
}

Here is its sample run:

c print file content character by character

The EOF (End-of-File) character indicates the file's end; there are no more characters inside the file.

Therefore, every time after reading the character and initializing it in the ch variable, it gets compared with EOF. If the condition evaluates to false, then print the value of ch and read the next character. Again, he compares it with EOF. Continue the reading and printing operation of the file's content until the value of ch becomes equal to EOF.

The same program in different languages

C Quiz


« Previous Program Next Program »


Liked this post? Share it!