fread - lit des octets à partir d'un fichier
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Pensez à void * comme représentant l'adresse du premier octet de n'importe quel type de données. Pensez à size_t comme un long.
Cette fonction lit des données à partir d'un fichier qui a été ouvert via fopen. Elle attend en entrée :
ptr, qui est l'adresse (du premier octet) de la mémoire dans laquelle lire les données,size, qui est la taille (en octets) du type de données à lire,nmemb, qui est le nombre de ces types à lire en une fois, etstream, qui est un pointeur vers un FILE retourné par fopen.Par exemple, si vous lisez un char à la fois, size serait sizeof(char) (c'est-à-dire 1), et nmemb serait 1.
Cette fonction renvoie le nombre d'éléments lus, ce qui correspond au nombre d'octets lus lorsque size vaut 1.
Si une erreur se produit, ou si la fin du fichier est atteinte, cette fonction peut renvoyer une valeur inférieure à nmemb ou même 0.
Le fichier ouvert "se souvient" du nombre d'octets qui ont été lus avec succès, de sorte que les appels ultérieurs à cette fonction pour stream renverront des octets après ceux déjà lus.
#include <stdio.h>
int main(void)
{
FILE *file = fopen("cs50.txt", "r");
if (file != NULL)
{
char c;
while (fread(&c, sizeof(char), 1, file))
{
printf("%c", c);
}
fclose(file);
}
}