fread - leer bytes de un archivo
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
Piensa en void * como la representación de la dirección del primer byte de cualquier tipo de dato. Piensa en size_t como un long.
Esta función lee datos de un archivo que ha sido abierto mediante fopen. Espera como entrada:
ptr, que es la dirección (del primer byte) de la memoria en la que se leerán los datos,size, que es el tamaño (en bytes) del tipo de dato a leer,nmemb, que es el número de esos tipos a leer a la vez, ystream, que es el puntero a un FILE devuelto por fopen.Por ejemplo, si se lee un char a la vez, size sería sizeof(char) (es decir, 1), y nmemb sería 1.
Esta función devuelve el número de elementos leídos, que es igual al número de bytes leídos cuando size es 1.
Si se produce un error o se alcanza el final del archivo, esta función podría devolver un valor menor que nmemb o incluso 0.
El archivo abierto "recuerda" el número de bytes que se han leído correctamente, de modo que las llamadas posteriores a esta función para stream devolverán bytes después de los ya leídos.
#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);
}
}