SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Irade en Jueves 18 de Junio de 2009, 19:16

Título: Duda con fscanf
Publicado por: Irade 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
Título: Re: Duda con fscanf
Publicado por: m0skit0 en Viernes 19 de Junio de 2009, 10:05
Hola, bienvenido al foro

Para postear tu código debes usar las etiquetas de código y ponerlo formateado, porque si no, no hay quien se entere  ^_^

Yendo al tema que te preocupa, es difícil responderte si no se sabe qué estructura tiene el fichero que estás leyendo, es decir, cómo van los datos en tu fichero, o con qué función lo escribes.

Saludos