El manejo de archivos es una habilidad esencial en la programación en C, ya que permite a los programas leer y escribir datos en archivos, lo que es crucial para la persistencia de datos. En esta sección, aprenderás los conceptos básicos del manejo de archivos en C, incluyendo cómo abrir, leer, escribir y cerrar archivos.

Conceptos Clave

  1. Archivos: Un archivo es una colección de datos almacenados en un dispositivo de almacenamiento, como un disco duro.
  2. Flujo de Archivos: En C, los archivos se manejan mediante flujos (streams), que son abstracciones que permiten leer y escribir datos de manera secuencial.
  3. Funciones de Manejo de Archivos: C proporciona varias funciones estándar para trabajar con archivos, como fopen, fclose, fread, fwrite, fprintf, fscanf, etc.

Abrir y Cerrar Archivos

Para trabajar con archivos en C, primero debes abrir el archivo utilizando la función fopen. Una vez que hayas terminado de trabajar con el archivo, debes cerrarlo utilizando la función fclose.

Sintaxis de fopen y fclose

FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);
  • filename: El nombre del archivo que deseas abrir.
  • mode: El modo en el que deseas abrir el archivo (por ejemplo, lectura, escritura, etc.).
  • stream: Un puntero al archivo que se ha abierto.

Modos de Apertura de Archivos

Modo Descripción
"r" Abre un archivo para lectura. El archivo debe existir.
"w" Abre un archivo para escritura. Si el archivo existe, se trunca a cero. Si no existe, se crea.
"a" Abre un archivo para añadir. Si el archivo no existe, se crea.
"r+" Abre un archivo para lectura y escritura. El archivo debe existir.
"w+" Abre un archivo para lectura y escritura. Si el archivo existe, se trunca a cero. Si no existe, se crea.
"a+" Abre un archivo para lectura y añadir. Si el archivo no existe, se crea.

Ejemplo Práctico

#include <stdio.h>

int main() {
    FILE *file;

    // Abrir el archivo en modo escritura
    file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("Error al abrir el archivo.\n");
        return 1;
    }

    // Escribir en el archivo
    fprintf(file, "Hola, Mundo!\n");

    // Cerrar el archivo
    fclose(file);

    return 0;
}

En este ejemplo, el programa abre un archivo llamado example.txt en modo escritura, escribe "Hola, Mundo!" en el archivo y luego lo cierra.

Leer y Escribir en Archivos

Funciones de Escritura

  • fprintf: Escribe una cadena formateada en un archivo.
  • fwrite: Escribe datos binarios en un archivo.

Funciones de Lectura

  • fscanf: Lee una cadena formateada desde un archivo.
  • fread: Lee datos binarios desde un archivo.

Ejemplo de Escritura y Lectura

#include <stdio.h>

int main() {
    FILE *file;
    char buffer[100];

    // Abrir el archivo en modo escritura
    file = fopen("example.txt", "w");
    if (file == NULL) {
        printf("Error al abrir el archivo.\n");
        return 1;
    }

    // Escribir en el archivo
    fprintf(file, "Hola, Mundo!\n");
    fclose(file);

    // Abrir el archivo en modo lectura
    file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("Error al abrir el archivo.\n");
        return 1;
    }

    // Leer del archivo
    if (fgets(buffer, 100, file) != NULL) {
        printf("Contenido del archivo: %s", buffer);
    }

    // Cerrar el archivo
    fclose(file);

    return 0;
}

En este ejemplo, el programa primero escribe "Hola, Mundo!" en example.txt y luego lo lee y muestra el contenido en la consola.

Ejercicio Práctico

Ejercicio 1: Crear y Leer un Archivo

  1. Escribe un programa que cree un archivo llamado datos.txt y escriba las siguientes líneas en él:

    Nombre: Juan
    Edad: 30
    Profesión: Ingeniero
    
  2. Luego, escribe otro programa que lea el contenido de datos.txt y lo muestre en la consola.

Solución

Programa para Escribir en el Archivo

#include <stdio.h>

int main() {
    FILE *file;

    file = fopen("datos.txt", "w");
    if (file == NULL) {
        printf("Error al abrir el archivo.\n");
        return 1;
    }

    fprintf(file, "Nombre: Juan\n");
    fprintf(file, "Edad: 30\n");
    fprintf(file, "Profesión: Ingeniero\n");

    fclose(file);

    return 0;
}

Programa para Leer del Archivo

#include <stdio.h>

int main() {
    FILE *file;
    char buffer[100];

    file = fopen("datos.txt", "r");
    if (file == NULL) {
        printf("Error al abrir el archivo.\n");
        return 1;
    }

    while (fgets(buffer, 100, file) != NULL) {
        printf("%s", buffer);
    }

    fclose(file);

    return 0;
}

Conclusión

En esta sección, has aprendido los conceptos básicos del manejo de archivos en C, incluyendo cómo abrir, leer, escribir y cerrar archivos. Estos fundamentos te permitirán trabajar con archivos en tus programas, lo que es crucial para la persistencia de datos. En la próxima sección, profundizaremos en la lectura y escritura de archivos, incluyendo técnicas avanzadas y manejo de errores.

Curso de Programación en C

Módulo 1: Introducción a C

Módulo 2: Tipos de Datos y Variables

Módulo 3: Flujo de Control

Módulo 4: Funciones

Módulo 5: Arreglos y Cadenas

Módulo 6: Punteros

Módulo 7: Estructuras y Uniones

Módulo 8: Asignación Dinámica de Memoria

Módulo 9: Manejo de Archivos

Módulo 10: Temas Avanzados

Módulo 11: Mejores Prácticas y Optimización

Módulo 12: Proyecto y Evaluación Final

© Copyright 2024. Todos los derechos reservados