fread() function in C++

The fread() function in C++ reads the block of data from stream. This function first, reads count number of objects, each one with a size of size bytes from the given input stream.
The total amount of bytes read, if successful is ( size*count ). According to the no. of characters read, the indicator file position is incremented. If the objects read are not trivially copy-able, then the behavior is undefined and if the value of size or count is equal to zero, then this program will simply return 0.

Syntax :

size_t fread(void * buffer, size_t size, size_t count, FILE * stream)

Parameter : The function accepts four mandatory parameters which are described as below:



  • buffer: it specifies the pointer to the block of memory with a size of at least (size*count) bytes to store the objects.
  • size: it specifies the size of each objects in bytes. size_t is an unsigned integral type.
  • count: it specifies the number of elements, each one with a size of size bytes.
  • stream: it specifies the file stream to read the data from.

Return Value: The function returns the number of objects read successfully. If an error occurs, the return value can be less than count.

Below programs illustrate the above function:
Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate fread() function
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
  
int main()
{
    FILE* file_;
    char buffer[100];
    file_ = fopen("g4g.txt", "aman");
    while (!feof(file_)) // to read file
    {
        // fucntion used to read the contents of file
        fread(buffer, sizeof(buffer), 1, file_);
        cout << buffer;
    }
    return 0;
}

chevron_right


Suppose the file g4g.txt contains following data:

Geeks : DS-ALgo 
Gfg : DP 
Contribute : writearticle 

Then, when you will run the program, the output will be

Harry Potter : Specs
Hermione : Smart
Weasley : FlyingCar
Dumbledore : Wand

Program 2 :

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program t illustrate fread() function
// when file's size or count is equal to 0
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
  
int main()
{
    FILE* file_;
    char buffer[100];
  
    file_ = fopen("g4g.txt", "aman");
    cout << "count = 0, return value = " << 
    fread(buffer, sizeof(buffer), 0, file_);
    cout << "\nsize = 0, return value = " << 
    fread(buffer, 0, 1, file_) << endl;
    return 0;
}

chevron_right


Output:

count = 0, return value = 0
size = 0, return value = 0


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.