fread() function in C++

The C/C++ library function size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) reads data from the given stream into the array pointed to, by ptr. Following is the declaration for fread() function.

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

The Following table contains the fread() parameters and description:

ptrThis is the pointer to a block of memory with a minimum size of size*nmemb bytes.
sizeThis is the size in bytes of each element to be read.
nmembThis is the number of elements, each one with a size of size bytes.
streamThis is the pointer to a FILE object that specifies an input stream.

The total number of elements successfully read are returned as a size_t object, which is an integral data type. If this number differs from the nmemb parameter, then either an error had occurred or the End Of File was reached.

Example Code

#include <stdio.h>
#include <string.h>
int main () {
   FILE *fp;
   char c[] = "this is tutorialspoint";
   char buffer[100];
   /* Open file for both reading and writing */
   fp = fopen("file.txt", "w+");
   /* Write data to the file */
   fwrite(c, strlen(c) + 1, 1, fp);
   /* Seek to the beginning of the file */
   fseek(fp, 0, SEEK_SET);
   /* Read and display data */
   fread(buffer, strlen(c)+1, 1, fp);
   printf("%s\n", buffer);

Let us compile and run the above program that will create a file file.txt and write a content this is tutorialspoint. After that, we use fseek() function to reset writing pointer to the beginning of the file and prepare the file content which is as follows −


this is tutorialspoint

Updated on: 30-Jul-2019


Kickstart Your Career

Get certified by completing the course

Get Started