El problema es cuando la quiero leer fuera del procedimiento o desde otra funcion, que solo me lee valores nulos o directamente nada...
el procedimiento es el siguiente:
Código:
Así es como llamo la función:typedef struct jugador { char nombre[20]; char fecha[20]; int puntuacion; struct jugador *siguiente; }; void LeerArchivo(jugador *aux, jugador *aux2, jugador *primero, jugador *ultimo) { FILE* f; f = fopen("Puntuaciones.txt", "r"); aux2=(jugador *)malloc(sizeof(jugador)); primero = aux2; fgets(aux2->nombre, 20, f); if(!feof(f)) { printf(aux2->nombre); fgets(aux2->fecha, 20, f); printf(aux2->fecha); fscanf(f, "%d\n", &aux2->puntuacion); printf("%d\n", aux2->puntuacion); ultimo = aux2; } while(!feof(f)) { aux=(jugador *)malloc(sizeof(jugador)); aux2->siguiente = aux; fgets(aux->nombre, 20, f); printf(aux->nombre); fgets(aux->fecha, 20, f); printf(aux->fecha); fscanf(f, "%d\n", &aux->puntuacion); printf("%d\n", aux->puntuacion); aux2 = aux; ultimo = aux2; } aux = primero; aux2 = primero; }
Código:
Hasta aquí bien, y aquí viene cuando lo quiero volver a leer:void main() { jugador *aux; jugador *aux2; jugador *primero; jugador *ultimo; aux = NULL; aux2 = NULL; primer = NULL; ultim = NULL; LeerArchivo(aux, aux2, primero, ultimo);
Código:
Cuando lo pruebo, el campo aux->nombre da "(null)" y el programa peta en aux->fecha...printf("Prueba para leer el primer nodo de la lista:\n"); printf("%s", primero->nombre); printf("%s", primero->fecha); printf("%d\n", primero->puntuacio); }
Cual es el problema?
Gracias...