Page 343

5 Ficheros

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

struct Cancion * cancion; int numcanciones; FILE * f ;

4 5 6 7

f = fopen(nombre_fichero, "w"); for (disco = coleccion; disco != NULL; disco = disco->sig) { fprintf (f , "%s\n", disco->titulo); fprintf (f , "%s\n", disco->interprete); fprintf (f , "%d\n", disco->anyo);

8 9 10 11 12 13

numcanciones = 0; for (cancion = disco->canciones; cancion != NULL; cancion = cancion->sig) numcanciones++; fprintf (f , "%d\n", numcanciones);

14 15 16 17 18

for (cancion = disco->canciones; cancion != NULL; cancion = cancion->sig) fprintf (f , "%s\n", cancion->titulo);

19 20

} fclose(f );

21 22 23

}

Observa que hemos recorrido dos veces la lista de canciones de cada disco: una para saber cu´antas canciones contiene (y as´ı poder escribir en el fichero esa cantidad) y otra para escribir los t´ıtulos de las canciones. Aqu´ı tienes las modificaciones hechas al programa principal: discoteca2.c

discoteca2 1.c 1 2 3 4

#include #include #include #include

<stdio.h> <stdlib.h> <string.h> <ctype.h>

. . . 253 254 255 256 257 258 259 260 261 262 263

int main(void) { int opcion; TipoColeccion coleccion; char titulo_disco[MAXCAD+1], titulo_cancion[MAXCAD+1], interprete[MAXCAD+1]; char linea[MAXCAD+1]; int anyo; struct Disco * undisco; TipoListaCanciones lista_canciones;

264

coleccion = carga_coleccion("discoteca.txt");

265 266

do { printf ("Men´ u\n"); printf ("1) A~ nadir disco\n"); printf ("2) Buscar por t´ ıtulo del disco\n"); printf ("3) Buscar por int´ erprete\n"); printf ("4) Buscar por t´ ıtulo de canci´ on\n"); printf ("5) Mostrar todo\n"); printf ("6) Eliminar un disco por t´ ıtulo e int´ erprete\n"); printf ("7) Finalizar\n"); printf ("Opci´ on: "); gets(linea); sscanf (linea, "%d", &opcion);

267 268 269 270 271 272 273 274 275 276 . . . 331

guarda_coleccion(coleccion, "discoteca.txt"); coleccion = libera_coleccion(coleccion);

332 333 334

return 0;

335 336

}

Introducci´ on a la Programaci´ on con C

337

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement