Archivos binários con estructuras

Lenguaje C

Los archivos binarios en C son aquellos que contienen datos en un formato no legible para humanos, sino que están codificados en bytes. Estos archivos son útiles cuando se desea guardar datos estructurados, como estructuras o matrices, en un formato compacto y eficiente en términos de memoria y velocidad de acceso.

Para trabajar con archivos binarios en C, se utilizan funciones similares a las que se utilizan con archivos de texto, como fopen, fwrite, fread y fclose. Sin embargo, en lugar de escribir y leer datos en formato de texto, se escriben y leen bytes de datos en el archivo binario.

Una forma común de trabajar con archivos binarios es guardar estructuras de datos en el archivo. Las estructuras son un tipo de datos que permiten almacenar varios valores relacionados juntos en una sola unidad. Para definir una estructura en C, se utiliza la siguiente sintaxis:

struct NombreEstructura {
    tipoDato1 campo1;
    tipoDato2 campo2;
    // ...
    tipoDatoN campoN;
};

Donde NombreEstructura es el nombre que se le da a la estructura, y campo1, campo2, …, campoN son los nombres de los campos que conforman la estructura, cada uno con su tipo de dato correspondiente. Por ejemplo, la siguiente estructura define un registro de empleado con tres campos:

struct Empleado {
    int id;
    char nombre[50];
    float salario;
};

Una vez definida la estructura, se puede utilizar para almacenar datos en un archivo binario utilizando las funciones de la biblioteca estándar de C. A continuación, se presenta un ejemplo de cómo guardar y leer estructuras de datos en un archivo binario:

#include <stdio.h>

struct Empleado {
    int id;
    char nombre[50];
    float salario;
};

int main() {
    // Guardar estructuras de datos en un archivo binario
    struct Empleado empleados[2] = {
        {1, "Juan Perez", 2500.50},
        {2, "Maria Rodriguez", 3000.75}
    };
    FILE *archivo = fopen("empleados.dat", "wb");
    fwrite(&empleados, sizeof(struct Empleado), 2, archivo);
    fclose(archivo);

    // Leer estructuras de datos de un archivo binario
    archivo = fopen("empleados.dat", "rb");
    struct Empleado empleados_leidos[2];
    fread(&empleados_leidos, sizeof(struct Empleado), 2, archivo);
    fclose(archivo);

    // Imprimir datos leídos
    for (int i = 0; i < 2; i++) {
        printf("ID: %d\n", empleados_leidos[i].id);
        printf("Nombre: %s\n", empleados_leidos[i].nombre);
        printf("Salario: %.2f\n", empleados_leidos[i].salario);
        printf("\n");
    }

    return 0;
}

En este ejemplo, primero se definió la estructura Empleado con tres campos: id (entero), nombre (cadena de caracteres) y salario (flotante). Luego se creó un arreglo de dos estructuras de Empleado llamado empleados, y se escribió este arreglo en el archivo «empleados.dat» usando la función fwrite. Para esto, se utilizó el operador `

Puede que también te guste...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *