Section courante

A propos

Section administrative du site

FREAD

Lecture dans le fichier
Langage C stdio.h

Syntaxe

int fread(void *tampon,size_t taille,size_t n,FILE *ptrfichier);

Paramètres

Nom Description
ptrfichier Ce paramètre permet d'indiquer l'identificateur de fichier
tampon Ce paramètre permet d'indiquer le bloc de données à lire
n Ce paramètre permet d'indiquer le nombre de bloc de données
taille Ce paramètre permet d'indiquer la taille du bloc de données

Retour

Valeur Description
0 Cette valeur permet d'indiquer qu'il n'y a pas eu de lecture de données ou une erreur s'est produite.
supérieur à 0 Ces valeurs permettent d'indiquer le nombre d'octets ayant réellement lu dans le fichier.
inférieur à 0 Ces valeurs peuvent être retourner par certains compilateurs, comme dans une situation d'erreur par exemple, mais ils ne font pas partie de la documentation officielle.

Description

Cette fonction effectue la lecture d'un bloc de mémoire de taille n*taille octets dans un fichier. Ainsi, grâce à cette fonction, il est possible de lire dans un fichier du contenu d'images binaires, des vidéos, des fichiers musicaux, des archives compressés ou de structure de données numérisés (base de registres, tableur, traitement de texte,...).

Algorithme

MODULE FREAD(ptr, size, count, stream)
   SI stream est NULL ALORS
      * Erreur : flux non valide
      RETOURNE 0
   FIN SI
   SI ptr est NULL ALORS
      * Erreur : pointeur de tampon invalide
      RETOURNE 0
   FIN SI
   SI le fichier n'est pas accessible en mode lecture ALORS
      * Erreur : fichier non ouvert en lecture
      RETOURNE 0
   FIN SI
   Initialiser un compteur de lecture bytes_read à 0
   BOUCLE POUR i ← 1 JUSQU'À count FAIRE
      Lire size octets du fichier stream dans ptr
      SI la lecture échoue ou n'atteint pas size octets ALORS
         * Retourner le nombre d'éléments lus jusqu'à présent
         RETOURNE bytes_read
      FIN SI
      bytes_readbytes_read + 1
   FIN BOUCLE POUR
   * Retourne le nombre d'éléments lus (peut être inférieur à count en cas d'erreur ou de fin de fichier)
   RETOURNE bytes_read

Remarques

Exemple

Prenons pour acquis que le fichier «readtext.txt» est le contenu :

gladir.com

Voici un exemple montrant une utilisation plus classique de cette fonction :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     FILE * Handle = fopen("readtext.txt", "r");
  7.     if(Handle != NULL) {
  8.         char Temp[4];
  9.         int I;
  10.         Temp[3] = 0;
  11.         for(I = 1; I <= 3; I++) {
  12.             fread(&Temp,3,1,Handle);
  13.             printf("%i:%s\n",I,Temp);
  14.         }
  15.         fclose(Handle);
  16.     }
  17.     return 0;
  18. }

on obtiendra le résultat suivant :

1:gla
2:dir
3:.co

Voir également

Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fwrite
Langage de programmation - C - Référence de procédures et fonctions - printf
Langage de programmation - C++ - Référence de procédures et fonctions - fread

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 111.

Dernière mise à jour : Jeudi, le 24 mars 2016