Fread C ++

Fread C ++
El manejo de archivos es una de las partes esenciales de todos los lenguajes de programación. Escribir un código pequeño y simple, que solo necesita una entrada pequeña y produce una producción pequeña, se puede manejar fácilmente en el terminal. Pero cuando se trata de dar una entrada enorme y la salida producida también será enorme, los archivos se harán necesarios para usar. El manejo de archivos ofrece formas eficientes de programación con enormes datos de entrada y salida. Además, no tiene que ingresar la misma entrada una y otra vez y puede guardar la salida del programa para su uso posterior. Aquí, aprenderemos a leer datos de un archivo utilizando el Fread () función.

¿Cuál es la función fread en c?++?

El fread la función es proporcionada por el CSTDIO.H Biblioteca. El cstdio.h El archivo de encabezado contiene todas las funciones que se pueden usar en el archivo, i.mi., Leer, escribir, etc. El Fread () La función se usa con archivos para leer un bloque de datos de un flujo de entrada. Lee la matriz de objetos de recuento, cada objeto de byte de tamaño de la secuencia de entrada y la almacena en la secuencia de salida especificada por el puntero. Los bytes totales leídos por la función Fread es el tamaño*recuento. Devuelve todos los elementos leídos con éxito.

Sintaxis de la función Fread

El fread La función toma cuatro parámetros: P, S, C y St. El size_t es un tipo entero sin firmar que define el tipo de variable. El parámetro 'P' se refiere al bloque de memoria de al menos el tamaño de byte de conteo S*c convertido a un vacío*. El parámetro 's' contiene el tamaño de cada elemento a leer. La transmisión del archivo, de la que vamos a leer los datos, se indica mediante la opción 'ST'. Devuelve los elementos que se leen con éxito y en caso de error, los elementos de retorno pueden ser menores que el recuento. Los ejemplos que se detallan a continuación ilustrarán el funcionamiento del fread funcionar mejor.

Ejemplo 1:
En el primer ejemplo de un artículo de Fread, crearemos un archivo de texto en el escritorio y escribiremos algunos datos en él. La función Fread se usará para leer los datos del archivo. Vea el código a continuación:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

Archivo* f;
char b [100];
f = fopen ("prueba.txt "," rb ");
mientras (!feudo))

fread (b, sizeof (b), 1, f);
cout << b;

regresar 0;

Dos archivos de encabezado, bits/stdc++.H y CSTDIO están incluidos en el programa al principio. Al escribir un programa C ++, los archivos de encabezado esenciales deben incluirse para que sus utilidades se puedan usar en el programa.

Por ejemplo, el CSTDIO lleva todas las funciones estándar que pueden funcionar en archivos como leer, escribir y etc. Del mismo modo, los bits/stdc++.H tiene todas las bibliotecas estándar. Entonces, cuando incluye esto, ha incluido todas las bibliotecas estándar de C ++ en el programa. El 'Uso de Namespace STD' es una biblioteca estándar que permite al usuario usar todas las funciones de la biblioteca C ++ estándar. Avanzando, el código completo se escribe en la función Main () donde ocurre toda la ejecución y el trabajo.

El puntero de archivo 'f' se define con la declaración de archivo* f que apuntará al bloque de memoria. Se define una matriz 'B' de tamaño 100 y tipo Char para contener el tamaño de los datos que se leerán desde la transmisión.

El fopen () La función abre el archivo y toma al menos dos argumentos, el nombre del archivo y el modo del archivo. Lanza un error si el archivo aún no existe, o no se puede encontrar; o de lo contrario simplemente abra el archivo existente. El modo de archivo (leer, escribir, agregar y etc.) se refiere al modo en el que se debe abrir el archivo. El nombre del archivo se refiere al archivo que debe leerse. Aquí, se proporciona el modo 'RB' que indica que el archivo debe abrir en el formato binario para leer. Al abrir el archivo, debe proporcionar la ruta completa del archivo donde existe. Por ejemplo, su archivo está presente en el documento, por lo que debe agregar la ruta completa a los documentos como este: "C: \\ Usuarios \\\\ Documento \\".

A continuación, definimos un bucle 'while' que itera a través de cada elemento en el archivo y termina solo cuando encuentra el EOF (final del archivo). En el bucle 'while' se usa la función fread y los cuatro parámetros se pasan para leer desde el archivo. La instrucción Cout imprimirá los datos presentes en el archivo en el terminal.

Finalmente, se usa la declaración de retorno 0 indicando: No devuelva nada en caso de ejecución exitosa. Presione el botón F11 en el teclado o haga clic en el icono de ejecución en la barra de herramientas de software Dev C ++ para ejecutar el programa. Ahora, veamos la siguiente salida:

Ejemplo 2:
Probemos el funcionamiento de la función Fread cuando el tamaño del archivo es cero. Vea el código a continuación:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

Archivo* f;
char b [100];
f = fopen ("prueba.txt "," rb ");
cout<<"Size of the File = "<regresar 0;

Aquí está la salida:

Ejemplo 3:
Como hemos visto algunos ejemplos simples y fáciles, trabajemos con un ejemplo complicado. Vea el código a continuación:

#incluir
enum size = 5;
int main (nulo)

doble a [tamaño] = 10, 20, 50, 70, 100;
Archivo *F = Fopen ("C: \\ Users \\" Nombre del sistema "\\ Desktop \\ Testing.bin "," wb ");
fwrite (a, sizeOf *a, tamaño, f);
fclose (f);
doble B [tamaño];
f = fopen ("c: \\ usuarios \\" nombre del sistema "\\ Desktop \\ Testing.bin "," rb ");
size_t r = fread (b, sizeOf *b, size, f);
if (r == size)
pone ("Contenido de matriz =");
para (int n = 0; n < SIZE; n++)
printf ("%f", b [n]);

fclose (f);

Aquí, declaramos un 'enum' para que el 'tamaño' pueda usarse más convenientemente. Al cambiar el valor de una variable 'tamaño', cambia en el programa completo.

Se crea una matriz de tipo doble que contiene los datos que se escribirán en el archivo. fopen () La función abre un archivo binario en modo de escritura 'WB'. Si el archivo binario ya existe, lo abre en modo de escritura; de lo contrario, crea un nuevo archivo con el nombre de archivo suministrado. El fwrite () la función es desechable para escribir el contenido de la matriz en un archivo. El fwrite () la función toma los mismos parámetros que Fread () función. Después de escribir los datos en el archivo, el fclose () La función se usa para cerrar el archivo para que no se puedan realizar cambios innecesarios o no intencionales en el archivo.

El resto de la función Fread es el mismo que utilizamos en ejemplos anteriores. Veamos el resultado de este código:

Como puede ver, los datos de la matriz se escriben correctamente en el archivo.

Conclusión

En esta guía, tuvimos una visión general de Fread () función. Aprendimos a usar el fread función con archivos para leer los datos. Dimos la demostración práctica de tres formas diferentes de emplear el fread función en el lenguaje de programación C ++.