C ++ fread () - Bibliothèque standard C ++

La fonction fread () en C ++ lit un nombre spécifié de caractères à partir du flux d'entrée donné.

prototype fread ()

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

La fread()fonction lit le nombre d'objets, chacun de size size octets à partir du flux d'entrée donné. Cela revient à appeler fgetc () size times pour lire chaque objet. En fonction du nombre de caractères lus, l'indicateur de position du fichier est incrémenté.

La valeur résultante de l'indicateur de position de fichier pour le flux est indéterminée si une erreur se produit lors de la lecture du fichier.

Si les objets ne sont pas facilement copiables, le comportement n'est pas défini.

Si la taille ou le nombre est égal à zéro, un appel à freadrenvoie zéro et aucune autre action n'est effectuée.

Il est défini dans le fichier d'en-tête.

Paramètres de fread ()

  • buffer: Pointeur vers le bloc de mémoire pour stocker les objets.
  • size: taille de chaque objet en octets.
  • count: le nombre d'objets à lire.
  • stream: le flux de fichiers à partir duquel lire les données.

fread () Valeur de retour

La fread()fonction renvoie le nombre d'objets lus avec succès. Si une erreur ou une condition de fin de fichier se produit, la valeur de retour peut être inférieure à count.

Exemple 1: Fonctionnement de la fonction fread ()

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); fp = fopen("data.txt","rb"); while(!feof(fp)) ( fread(buffer,sizeof(buffer),1,fp); cout << buffer; ) return 0; )

Supposons que le fichier contienne les données suivantes:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Lorsque vous exécutez le programme, la sortie sera:

 Dennis Ritchie: C Bjarne Stroustrup: C ++ Guido van Rossum: Python James Gosling: Java

Exemple 2: Fonctionnement de la fonction fread () lorsque count ou size est égal à zéro

 #include #include using namespace std; int main() ( FILE *fp; char buffer(100); int retVal; fp = fopen("data.txt","rb"); /* when count is zero */ retVal = fread(buffer,sizeof(buffer),0,fp); cout << "When count = 0, return value = " << retVal << endl; /* when size is zero */ retVal = fread(buffer,0,1,fp); cout << "When size = 0, return value = " << retVal << endl; return 0; )

Lorsque vous exécutez le programme, la sortie sera:

 Lorsque count = 0, valeur de retour = 0 Lorsque taille = 0, valeur de retour = 0

Articles intéressants...