Fonction de lecture fread: fichier binaire

Ecriture dans un fichier binaire: fread

                                           int fread(void* ptr, int taille, int nb, FILE* f);

Lit dans le fichier f , un nombre nb d'objets de taille taille et les range en mémoire à l'adresse ptr. fread retourne le nombre d'objets effectivement lus ou 0 en cas d'erreur.

Pour lire l'entier i dans un fichier f on utilisera l'instruction: fread(&i, sizeof(int), 1, f);
#include<stdio.h>
typedef struct {
                      int x;
                      int y;
                     } point;
int main(void)
{
FILE* f;
point p;
f = fopen("sauverPoints.bin", "rb");
if (f = = NULL)
    printf ("Erreur ...");
else
   {
   
fread(&p, sizeof(point),1,f);    
    while (!feof(f))
        {
        printf("Un point lu (%d,%d)\n", p.x,p.y);
        fread(&p, sizeof(point),1,f);
        }

   
}
fclose(f);  
}
REMARQUE
  • Le test de fin de fichier est le même que celui pour fgets il faut tester feof(f). Si la dernière lecture atteint EOF eof(f) rendra 1.
suivant              plan