C ++ fread () - Biblioteca estándar de C ++

La función fread () en C ++ lee un número específico de caracteres del flujo de entrada dado.

prototipo fread ()

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

La fread()función lee el número de objetos, cada uno con un tamaño de bytes del flujo de entrada dado. Es similar a llamar a fgetc () size times para leer cada objeto. Según el número de caracteres leídos, se incrementa el indicador de posición del archivo.

El valor resultante del indicador de posición del archivo para la secuencia es indeterminado si se produce algún error al leer el archivo.

Si los objetos no se pueden copiar trivialmente, el comportamiento no está definido.

Si el tamaño o el recuento es cero, una llamada a freaddevolverá cero y no se realizará ninguna otra acción.

Está definido en el archivo de encabezado.

Parámetros fread ()

  • búfer: puntero al bloque de memoria para almacenar los objetos.
  • size: Tamaño de cada objeto en bytes.
  • count: el número de objetos para leer.
  • secuencia: la secuencia de archivos para leer los datos.

fread () Valor de retorno

La fread()función devuelve el número de objetos leídos correctamente. Si ocurre un error o una condición de fin de archivo, el valor de retorno puede ser menor que el recuento.

Ejemplo 1: Cómo funciona la función 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; )

Suponga que el archivo contiene los siguientes datos:

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

Cuando ejecute el programa, la salida será:

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

Ejemplo 2: Cómo funciona la función fread () cuando el recuento o el tamaño es cero

 #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; )

Cuando ejecute el programa, la salida será:

 Cuando cuenta = 0, valor de retorno = 0 Cuando tamaño = 0, valor de retorno = 0

Articulos interesantes...