fread : fread « stdio.h « C Tutorial






ItemValue
Header filestdio.h
Declarationsize_t fread(void *buf, size_t size, size_t count, FILE *stream);
Functionreads count number of objects by size and stores them in *buf.
Returnreturns the number of items actually read.


  1. Use feof() to determine the end of file.
  2. Use ferror() to determine the error.
#include <stdio.h>
  #include <stdlib.h>

  int main(void)
  {
    FILE *fp;
    float bal[5] = { 1.1F, 2.2F, 3.3F, 4.4F, 5.5F };
    int i;

    if((fp=fopen("test", "wb"))==NULL) {
      printf("Cannot open file.\n");
      exit(1);
    }

    if(fwrite(bal, sizeof(float), 5, fp) != 5)
      printf("File read error.");
      fclose(fp);

    if((fp=fopen("test", "rb"))==NULL) {
      printf("Cannot open file.\n");
      exit(1);
    }

    if(fread(bal, sizeof(float), 5, fp) != 5) {
      if(feof(fp)) {
         printf("Premature end of file.");
      }else {
         printf("File read error.");
      }
    }
    fclose(fp);

    for(i=0; i<5; i++){
      printf("%f ", bal[i]);
    }
    return 0;
  }
1.100000 2.200000 3.300000 4.400000 5.500000








22.13.fread
22.13.1.fread