• Domingo 28 de Abril de 2024, 20:33

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Irade

Páginas: [1]
1
C/C++ / Duda con fscanf
« en: Jueves 18 de Junio de 2009, 19:16 »
Hola ^_^ , estoy haciendo una práctica en C en la que el primer paso es leer de un archivo de texto. Son 4 cosas las que hay que leer en cada linea (nombre, titulo, nº discos y fecha de entrada en la lista), por lo tanto me he creado primero estas estructuras:

typedef struct
{
int dia;
int mes;
int anyo;
}Tfecha;

typedef struct
{
char nombre[30];
char titulo[30];
int numDiscos;
Tfecha fecha;
}lista_exitos;

lista_exitos l;

y para leer los datos del fichero he hecho lo siguiente:
void leerLista(lista_exitos l)
{
int i = 0;
FILE *fichero;
fichero = fopen("radio.txt", "r+");
if(fichero != NULL)
{
while (feof(fichero) == 0)
{
fflush(stdin);
fscanf(fichero, "%s %s %d", l.nombre, l.titulo, &l.numDiscos);
printf("n");
printf("%s %s %d", l.nombre, l.titulo, l.numDiscos);
}
}
else
{
printf("nErrorn");
}
fclose(fichero);
}

(La fecha aun no la cojo porque quiero aclararme primero con esto)
El problema es que yo quiero guardar muchos nombres, titulos y numeros de discos, pero con eso solo me quedo con el último. Más adelante tendré que sacar un nombre determinado, o buscar por el número de discos...
Como hago para guardarlos y luego poder acceder a cada uno de ellos?? :(
Había pensado algo así:
fscanf(fichero, "%s %s %d", l.nombre(i), l.titulo(i), &l.numDiscos(i));
pero no funciona.
La lista puede tener como máximo 50 entradas.

Muchas gracias :D

Páginas: [1]