C: IO y archivos
Aprende a leer y escribir en archivos y ficheros en lenguaje C utilizando fopen, fclose, fprintf, fscanf, stdio.
Aprende C GRATIS y certifícateAprender C implica familiarizarse con diversas operaciones de I/O, tanto en la consola como en archivos del sistema. A lo largo de este contenido, se aborda la forma de abrir, leer, escribir y cerrar ficheros para un manejo de datos fiable en entornos de producción.
En el Lenguaje C, la biblioteca estándar ofrece herramientas como fopen
, fclose
, fprintf
o fscanf
para gestionar la entrada y salida de datos de forma estructurada. Estas funciones están declaradas en la cabecera stdio.h
y facilitan la manipulación de archivos sin necesidad de dependencias externas.
La función fopen
se emplea para abrir un archivo, especificando la ruta y el modo de acceso, por ejemplo: lectura (r
), escritura (w
) o anexado (a
). Cuando se abre un fichero, se recibe un puntero de tipo FILE*
, que será útil para leer o escribir, así como para identificar posibles errores al trabajar con el sistema de archivos.
Para asegurar una correcta gestión de recursos, conviene cerrar el fichero con la función fclose
en cuanto termina la operación de entrada o salida. Un buen control de errores también exige verificar que fopen
no retorne NULL
, ya que esto indicaría un fallo al abrir el archivo (por ejemplo, porque no existe o no se tienen permisos).
En las operaciones de lectura, se pueden utilizar métodos como fgetc
para obtener caracteres individuales, o fscanf
para interpretar datos con formato. Durante la escritura, fprintf
y fputc
ayudan a enviar datos al fichero con la estructura deseada. Estos métodos son útiles tanto para archivos de texto como para flujos de consola (por ejemplo, stdout y stdin).
Cuando se precise manejar datos en bloque o de tipo binario, es frecuente el uso de fread
y fwrite
. Ambas funciones permiten procesar arreglos de bytes con mayor eficiencia, sobre todo en aplicaciones que requieran almacenar grandes volúmenes de información en archivos binarios.
A continuación se muestra un ejemplo que abre un fichero para lectura, recorre su contenido e imprime cada carácter en la consola:
#include <stdio.h>
int main() {
FILE *archivo = fopen("datos.txt", "r");
if (archivo == NULL) {
perror("Error al abrir el archivo");
return 1;
}
int caracter;
while ((caracter = fgetc(archivo)) != EOF) {
putchar(caracter);
}
fclose(archivo);
return 0;
}
Para aprender C de forma sólida, es imprescindible practicar con cada una de estas funciones y experimentar con diferentes formatos y modos de apertura. Poner en práctica la I/O en archivos es un paso esencial para dominar el tratamiento de datos en aplicaciones de cualquier envergadura.
Algunos consejos importantes sobre la gestión de archivos en C:
- Validar siempre la apertura de ficheros para evitar comportamientos indefinidos en el programa.
- Mantener un control estricto sobre cada recurso abierto, cerrándolo cuando ya no sea necesario.
- Hacer uso de mensajes de diagnóstico con
perror
o variables de error para supervisar el estado de la operación. - Dividir las tareas de entrada y salida en funciones o módulos independientes para facilitar la lectura y el mantenimiento del código.
Una vez dominadas estas rutinas de entrada y salida, resulta sencillo escalar el programa y manipular varios archivos de manera simultánea, lo que permite generar y procesar datos en distintos formatos según las necesidades del proyecto.
Lecciones de este módulo de C
Lecciones de programación del módulo IO y archivos del curso de C.