Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Visión general de gestión de archivos en C

En C, la biblioteca estándar stdio.h ofrece un conjunto completo de funciones para trabajar con datos persistentes en disco. Al dominar estas herramientas puedes crear, leer, escribir y cerrar archivos de forma fiable, asegurando integridad de datos y estabilidad del programa.

Funciones clave de manejo de archivos

FunciónPropósito
fopen()Abrir un archivo existente o crear uno nuevo.
fclose()Cerrar un archivo abierto y liberar recursos.
fprintf()Escribir texto formateado en un archivo.
fscanf()Leer datos formateados desde un archivo.
getc()Recuperar un solo carácter de un archivo.
putc()Escribir un solo carácter en un archivo.
fgets()Leer una línea completa en un búfer.
fputs()Escribir una cadena en un archivo sin formateo.
fseek()Mover el puntero de archivo a una ubicación especificada.
ftell()Recuperar la posición actual del puntero de archivo.
rewind()Restablecer el puntero de archivo al principio.

Modos de archivo explicados

ModoDescripción
"r"Abrir para lectura; falla si el archivo no existe.
"w"Abrir para escritura; trunca archivo existente o crea uno nuevo.
"a"Abrir para anexar; las escrituras se añaden al final del archivo.
"r+"Abrir para lectura y escritura desde el principio.
"w+"Abrir para lectura y escritura; trunca archivo existente.
"a+"Abrir para lectura y escritura; anexa nuevos datos.

Crear un archivo

Para crear o abrir un archivo, primero declaras un puntero a archivo, luego llamas a fopen() con el nombre de archivo y modo deseados:

FILE *fp; fp = fopen("datos.txt", "w"); 

Si el archivo no existe, fopen() lo crea. Si ya existe, el modo determina si se preserva o sobrescribe su contenido.

También puedes especificar una ruta absoluta:

fp = fopen("D:/datos.txt", "w"); 

Imágenes que ilustran el paso de creación de archivo:

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Cerrar un archivo

Después de terminar todas las operaciones de archivo, siempre llama a fclose() para liberar el descriptor de archivo y vaciar búferes:

fp = fopen("datos.txt", "r"); ... fclose(fp); 

La función devuelve 0 en éxito y EOF en error. Aunque el sistema operativo cierra automáticamente los archivos al salir del programa, el cierre explícito se considera una práctica recomendada.

Escritura en un archivo

Al escribir, recuerda añadir caracteres de nueva línea (\n) explícitamente donde sea necesario. A continuación están las funciones de escritura más comunes:

Ejemplo: fputc()

#include <stdio.h> int main() { int i; FILE *fptr; const char *str = "Guru99 Rocks\n"; fptr = fopen("fputc_test.txt", "w"); for (i = 0; str[i] != '\n'; i++) { fputc(str[i], fptr); } fclose(fptr); return 0; } 

El archivo de salida fputc_test.txt contiene el texto:

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Ejemplo: fputs()

#include <stdio.h> int main() { FILE *fp = fopen("fputs_test.txt", "w+"); fputs("Este es el tutorial de Guru99 sobre fputs,", fp); fputs("No necesitamos usar bucle for\n", fp); fputs("Más fácil que la función fputc\n", fp); fclose(fp); return 0; } 

Archivo resultante fputs_test.txt:

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Ejemplo: fprintf()

#include <stdio.h> int main() { FILE *fptr = fopen("fprintf_test.txt", "w"); fprintf(fptr, "Aprendiendo C con Guru99\n"); fclose(fptr); return 0; } 

Archivo resultante fprintf_test.txt:

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Lectura desde un archivo

Tres funciones principales leen datos:

A continuación se muestra una demostración completa que lee fprintf_test.txt usando los tres métodos:

#include <stdio.h> int main() { FILE *fp; char buffer[50], c; fp = fopen("fprintf_test.txt", "r"); printf("----leer una línea----\n"); fgets(buffer, 50, fp); printf("%s\n", buffer); fclose(fp); fp = fopen("fprintf_test.txt", "r"); printf("----leer y analizar datos----\n"); char str1[10], str2[2], str3[20], str4[2]; fscanf(fp, "%s %s %s %s", str1, str2, str3, str4); printf("Leer Cadena1 |%s|\n", str1); printf("Leer Cadena2 |%s|\n", str2); printf("Leer Cadena3 |%s|\n", str3); printf("Leer Cadena4 |%s|\n", str4); fclose(fp); fp = fopen("fprintf_test.txt", "r"); printf("----leer todo el archivo----\n"); while ((c = fgetc(fp)) != EOF) { putchar(c); } fclose(fp); return 0; } 

Salida del programa:

----leer una línea---- Aprendiendo C con Guru99 ----leer y analizar datos---- Leer Cadena1 |Aprendiendo| Leer Cadena2 |C| Leer Cadena3 |con| Leer Cadena4 |Guru99| ----leer todo el archivo---- Aprendiendo C con Guru99

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

E/S interactiva carácter por carácter con getc y putc

Este ejemplo mínimo demuestra leer entrada del usuario, escribirla en un archivo y luego leerla de vuelta:

#include <stdio.h> int main() { FILE *fp; int c; printf("Manejo de Archivos\n"); fp = fopen("demo.txt", "w"); while ((c = getchar()) != EOF) { putc(c, fp); } fclose(fp); printf("Datos Ingresados:\n"); fp = fopen("demo.txt", "r"); while ((c = fgetc(fp)) != EOF) { putchar(c); } fclose(fp); return 0; } 

Ejecución de muestra:

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Dominando E/S de archivos en C: Crear, abrir, leer, escribir y cerrar archivos con confianza

Conclusiones

Lenguaje C

  1. Tarjetas I/O Explicadas: Cómo Funcionan y Por Qué Importan
  2. Construye un Cable Breakout I/O y Adaptador Plugboard para Raspberry Pi – Guía Paso a Paso
  3. Apacer lanza tarjetas flash CV110‑SD y CV110‑MSD de alto rendimiento globales
  4. Apacer presenta SSDs industriales SV250: lecturas 560 MB/s, escrituras 520 MB/s
  5. Serie EDAM‑4200 de acceed: Módulos I/O integrados para comunicación de datos escalable y fiable
  6. Domine variables y tipos de datos primitivos en C#: Guía completa
  7. Dominando la entrada/salida en C: scanf() y printf() explicados
  8. Manejo de archivos en C: Dominando E/S con fopen, fprintf, fread y fseek
  9. Dominando E/S de archivos en C: Crear, abrir y gestionar archivos
  10. Entendiendo los Archivos de Cabecera en C: Tipos, Uso y Buenas Prácticas
  11. Entrada/Salida de Archivos en Python: Dominando Operaciones de Lectura, Escritura y Gestión