El manejo eficiente de archivos es un componente esencial de la programación en C. Este artículo proporciona ejemplos prácticos de cómo se pueden implementar tareas comunes de manipulación de archivos, como la organización alfabética de palabras y la combinación de múltiples archivos de texto en uno solo. Ambos ejemplos ilustran técnicas clave para mejorar la manipulación de archivos en aplicaciones reales.
Organización Alfabética de Contenidos de Archivo
Imaginemos que necesitamos organizar palabras de un archivo según la letra inicial. El siguiente ejemplo en C muestra una forma de hacerlo:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main() {
FILE *finput, *fsorted;
char path[30];
char word[100];
char initial;
finput = fopen("words.txt", "r");
if (!finput) {
perror("Failed to open input file");
return EXIT_FAILURE;
}
while (fscanf(finput, "%s", word) == 1) {
initial = tolower(word[0]); // Ensure initial is lowercase for uniformity
snprintf(path, sizeof(path), "words-%c.txt", initial); // Generate the output file name
fsorted = fopen(path, "a"); // Open or create the file for appending
if (!fsorted) {
perror("Failed to open output file");
return EXIT_FAILURE;
}
fprintf(fsorted, "%s\n", word); // Write the word to the sorted file
fclose(fsorted); // Close the file after writing to it
}
fclose(finput);
return EXIT_SUCCESS;
}
Este código lee un archivo words.txt y escribe cada palabra en un archivo nuevo basado en la letra inicial de cada palabra, asegurando que las palabras se agrupen por su primera letra.
Fusión de Contenidos de Dos Archivos de Texto
A continuación, veamos cómo combinar el contenido de dos archivos de texto en uno, intercalando sus líneas:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *f1, *f2, *fmerged;
char line1[256], line2[256];
f1 = fopen("file1.txt", "r");
f2 = fopen("file2.txt", "r");
fmerged = fopen("merged.txt", "w");
if (!f1 || !f2 || !fmerged) {
perror("Error opening files");
return EXIT_FAILURE;
}
while (!feof(f1) || !feof(f2)) {
if (fgets(line1, sizeof(line1), f1)) {
fputs(line1, fmerged);
}
if (fgets(line2, sizeof(line2), f2)) {
fputs(line2, fmerged);
}
}
fclose(f1);
fclose(f2);
fclose(fmerged);
return EXIT_SUCCESS;
}
Este código toma dos archivos, file1.txt y file2.txt, y los combina en un nuevo archivo merged.txt, asegurándose de que las líneas de ambos archivos se intercalen de manera ordenada y secuencial.
Conclusión
La manipulación de archivos en C puede ser simple pero potente con las técnicas adecuadas. Estos ejemplos no solo muestran cómo realizar tareas comunes de manera efectiva, sino que también abren la puerta a aplicaciones más complejas y específicas que pueden ser adaptadas según las necesidades del programador. Estas estrategias son fundamentales para cualquier desarrollador que trabaje con grandes volúmenes de datos o que necesite organizar información de manera eficiente.
¿QUÉ TE HA PARECIDO EL ARTÍCULO? Danos tu opinión al final de la página.
Deja tu comentario y ayúdanos a crecer.
¡SÍGUENOS EN TUS REDES FAVORITAS!
AYUDANOS A CRECER Y QUE LLEGUEMOS A TODAS LAS PERSONAS QUE NOS NECESITANA. SÍGUENOS EN TUS REDES.
Entra AQUÍ y elíge donde seguirnos.

NUESTRAS ÚLTIMAS PUBLICACIONES
- 20 ejercicios de funciones avanzadas en Python (al estilo de Ackermann)
- Cómo guardar una página web completa en MySQL con PHP (urlencode, BLOB y otras técnicas)
- 60 ejercicios de funciones recursivas en Python para la carrera de Informática
- SIMULACRO 2 – FP Programación de Videojuegos
- Simulacro de examen – FP Programación de Videojuegos
- ALERTA METEOROLÓGICA

- Proyectos que puedes empezar para aprender a programar (Academia San Roque)

- 15 ejercicios básicos en R (con soluciones)

- 📘 5 Ejercicios Sencillos de Programación en R (con soluciones)

ELIGE TU RED FAVORITA Y SÍGUENOS.
AYUDANOS A CRECER Y A LLEGAR A TODAS LAS PERSONAS QUE NOS NECESITAN.
Contenido restringido





































































































































































































































































INFORMACIÓN SOBRE 







Comments are closed