Logo Studenta

Guia Manejo de Ficheros en Lenguaje C

¡Estudia con miles de materiales!

Vista previa del material en texto

Universidad Nacional Autónoma de Nicaragua, León 
Facultad de Ciencias y Tecnología 
Departamento de Computación 
 
 
 
Componente: Algoritmos y Estructuras de Datos 
Guía de Laboratorio 
TEMA: Manejo de Ficheros en Lenguaje C 
 
Elaborado por: 
 Juan Carlos Antón Soto 
 
 
 
 
 
 
 
 
 
 
 
“A la libertad por la Universidad” 
Algoritmos y Estructuras de Datos 
 
2 
 
 
TABLA DE CONTENIDOS 
 
 
1. Ejercicios de Ficheros ...................................................................................................................... 3 
1.1. Ejercicio 1 (Frases en un archivo) ............................................................................................ 3 
1.2. Ejercicio 2 (Registro de una persona en un archivo) .............................................................. 4 
1.3. Ejercicio 3 (Registros de personas en un fichero) .................................................................. 5 
1.4. Ejercicio 4 (Ejercicios básicos con Ficheros binarios) .............................................................. 5 
2. Bibliografía ...................................................................................................................................... 6 
 
 
 
 
 
Algoritmos y Estructuras de Datos 
 
3 
 
1. Ejercicios de Ficheros 
 
1.1. Ejercicio 1 (Frases en un archivo) 
 
Crea un programa que vaya leyendo las frases que el usuario teclea y las guarde en un fichero de 
texto llamado “registroDeUsuario.txt”. Terminará cuando la frase introducida sea "fin" (esa frase no 
deberá guardarse en el fichero). 
#include <stdio.h> 
#include <string.h> 
 
int main() 
{ 
 FILE *ptFichero; 
 char *fin="fin"; 
 char frase[60]; 
 
 ptFichero = fopen("c:/FICHEROS/registroDeUsuario.txt", "wt"); 
 printf(" PROGRAMA para ESCRIBIR FRASES.\nCuando quiera salir," 
 " escriba la palabra fin.\n\n"); 
 do 
 { 
 puts("\nEscriba una FRASE:\n(o fin). \n"); 
 gets(frase); 
 ______________________________ //verifique que la entrada ha sido “fin” 
 _______________ //en caso de ser fin salga del ciclo 
 //envíe la frase al archivo registroDeUsuario.txt 
_____________________________ 
 } 
 while (_______________________); 
 
 fclose(ptFichero); 
 return 0; 
} 
 
 
 
 
 
Algoritmos y Estructuras de Datos 
 
4 
 
1.2. Ejercicio 2 (Registro de una persona en un archivo) 
 
Crear una estructura que almacene los siguientes datos de una persona: nombre, edad, ciudad de 
residencia. Pedir al usuario esos datos de la persona y guardarlos en un fichero llamado “gente.dat”. 
Cerrar el fichero, volverlo a abrir para lectura y mostrar los datos que se habían guardado. 
Analice el código siguiente y de una solución en caso de encontrar algún error en el. 
#include <stdio.h> 
 
struct datos 
{ 
 char nombre[21]; 
 int edad; 
 char ciudad[21]; 
 } persona; 
 
int main() 
{ 
 FILE *fichero; 
 fichero = fopen("c:/FICHEROS/gente.dat", "wt"); 
 if (fichero == NULL) 
 printf("No se pudo abrir el archivo.\n"); 
 else 
 { 
 puts("Nombre:"); 
 gets(persona.nombre); 
 fprintf(fichero, "%s ", persona.nombre); 
 puts("Edad:"); 
 scanf("%d", &persona.edad); 
 getchar(); 
 fprintf(fichero, "%d ", persona.edad); 
 puts("Ciudad:"); 
 gets(persona.ciudad); 
 fputs(persona.ciudad, fichero); 
 fclose(fichero); 
 } 
 fichero = fopen("c:/FICHEROS/gente.dat", "rt"); 
 if (fichero == NULL) 
 printf("No se pudo abrir el archivo.\n"); 
 else 
 { do 
 { 
 fscanf(fichero,"%s",&persona.nombre); 
Algoritmos y Estructuras de Datos 
 
5 
 
 printf("%s ", persona.nombre); 
 fscanf(fichero, "%d", &persona.edad); 
 getchar(); 
 printf("%d ", persona.edad); 
 fscanf(fichero, "%s", &persona.ciudad); 
 printf("%s\n",persona.ciudad); 
 } while (!feof(fichero)); 
 fclose(fichero); 
 } //fin del else 
 return 0; 
} 
 
1.3. Ejercicio 3 (Registros de personas en un fichero) 
 
Ampliar el programa anterior para que use un “array de estructuras”, de forma que se puedan tener 
datos de 10 personas. Se deberá pedir al usuario los datos de estas personas y guardarlos en el 
fichero. Después se pedirá al usuario un número del 1 al 10 y se mostrarán los datos de la persona 
indicada por ese número, que se deberán leer del fichero (1 será la primera ficha, y 10 será la 
última). Por ejemplo, si el usuario indica que quiere ver los datos de la persona 3 (tercera), se deberá 
leer las dos primeras, ignorando su contenido, y después leer la tercera, que sí se deberá mostrar. 
De una solución al ejercicio. 
 
1.4. Ejercicio 4 (Ejercicios básicos con Ficheros binarios) 
 
#include <stdio.h> 
int main() 
{ 
 int x, n, a[10]={1,2,3,4,5,6,7,8,9,0}; 
 int b[10]; 
 char nombre[]="Ejercicios ficheros binarios"; 
 FILE *binario = NULL; 
 //Escribe las instrucciones para realizar cada una de las 
 //siguientes operaciones. 
 
 //1. Abre el fichero binario.dat ubicado dentro del directorio: 
 //c:/FICHEROS de modo que pueda escribir en forma binaria. 
 //verifica si se pudo abrir. 
 ___________________________________________ 
 if (____________________________) 
Algoritmos y Estructuras de Datos 
 
6 
 
 { 
 printf("Archivo listo para escribir\n\n"); 
 //2. Pide por pantalla un numero entero y escribe ese dato en el fichero 
 printf("Ingrese un valor entero: "); scanf("%d", &x); 
 ________________________________________ 
 //3. Escribe los 5 primeros elementos del array en el fichero. 
 ___________________________________________ 
 //4. Escribir los 10 primeros caracteres de la cadena nombre en el fichero. 
 ____________________________________________ 
 //5. Cerrar el fichero biniario y luego ábrelo para que puedas extraer 
 //los 5 primeros numeros guardados anteriormente del arreglo 'a' 
 ___________________________ 
 ____________________________________________ 
 //mueve el puntero lectura/escritura asociado al fichero apuntado por binario a la 
 //localización inicial para dar lectura de los valores almacenados del arreglo 
__________________________________ 
 //Lee los valores con la función fread 
_____________________________________ 
 printf("Extraccion de numeros\n”); 
 for(n=0;n<5;n++) 
 printf("%5d",b[n]); 
 printf("\n\n"); 
 } 
 else 
 printf("El archivo no se pudo abrir\n\n"); 
 return 0; 
} 
 
 
 
2. Bibliografía 
 
 Ceballos, Francisco Javier: C/C++ Curso de Programación, 2da Edición. Editorial RAMA. 2002. 
 Joyanes Aguilar, Luis; Zahonero Martínez Ignacio: Programación en C. McGraw Hill, 2001. 
 Gottfried, Bryan S: Programación en C. McGraw Hill, 1991.

Continuar navegando