codescracker
c

C Program to Read Content of a File and Display it



« Previous Program Next Program »

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

Things to Do before Program

Before executing the program given below that reads and display a file, a file must be created. Therefore, a file was created as mentioned in previous program of Read a File, named codescracker.txt with 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. Because I'm going to save the program in c programs folder of Documents directory. Therefore, the file codescracker.txt was also saved here (as mentioned in previous program). Here is the snapshot of the folder c programs. See the textual file is available in this folder:

read and display file content c

Read and Display File's Content in C

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

  1. file name
  2. file opening mode

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

Following C program asks from 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 build and run under Code::Blocks IDE. Here is its sample run:

c program read and display file content

Now enter the name of file say codescracker.txt and press 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 previous program. There, you will get the complete detail

Note - The %[^\0], second argument of fscanf() function indicates to read the content of file until a null terminated character occurred. In other words, read all the content of file.

Note - Never forgot to close the file pointer using fclose() function, after the operation gets completed.

Display the Content of First Line Only

To display the content of first line only from the file that will be entered by user at run-time, here is the program:

#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 compare this program with very first program of this article. The only change is in the second parameter of fscanf() function. That is, we have placed \n in place of \0 to read the content of file until a new line character occurred, in place of null terminated character. Rest of the things are same.

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

Read and Print File's Content Character by Character

This program does the same job as of very first program of this article. But in place of reading the whole content at once using fscanf() function, here we have used the fgetc() function to read the content of file in character-by-character manner. That is, read first character and print it, then read 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

Note - The EOF (End-Of-File) indicates the end of file, that is no any character left inside the file.

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

Same Program in Other Languages

C Online Test


« Previous Program Next Program »



© Copyright 2021. All Rights Reserved.

CodesCracker