Hola amigos, el ejercicio consta de multilista cargar por teclado datos y despues mostrarlos en ficheros, lo de cargar ya lo hice, pero no pude hacer estos dos puntos:
1. Ingresar un alumno y mostrar todos los libros que posee.
2. Ingresar un libro y mostrar el alumno que lo tiene
¿¿ Alguien xfa me puede ayudar??
#include <stdio.h>
#include <stdlib.h>
typedef struct alumnos
{
int nro_legajo;
char nombre[15];
struct alumnoslibros *al;
struct alumnos *sig;
} nodo_alumnos;
typedef struct alumnoslibros
{
int nro_libro;
char titulo[40];
char autor[40];
struct alumnoslibros *sig;
} nodo_alumnoslibros;
FILE *ptr;
void cargar(nodo_alumnos *p);
void cargar2(nodo_alumnoslibros *p);
int main()
{
nodo_alumnos *lista=(nodo_alumnos*)malloc(sizeof(nodo_alumnos));
cargar(lista);
}
void cargar(nodo_alumnos *p)
{
FILE *ptr;
if((ptr=fopen("Registros_Alumnos.txt","a"))!=NULL)
{
printf("\n\n(fin en -1)Legajo: ");
scanf("%d",&p->nro_legajo);
if(p->nro_legajo == -1)
{
p->al = NULL;
}
else
{
printf("Nombre: ");
scanf(" %[^\n]",p->nombre);
fprintf(ptr,"\n\n%d %s",p->nro_legajo,p->nombre);
p->al = (nodo_alumnoslibros*)malloc(sizeof(nodo_alumnoslibros));
cargar2(p->al);
p->sig = (nodo_alumnos*)malloc(sizeof(nodo_alumnos));
cargar(p->sig);
}
}
else
{
printf("\n\t\t\tERROR AL ABRIR ARCHIVO, VERIFIQUE EXISTENCIA");
}
fclose(ptr);
}
void cargar2(nodo_alumnoslibros *p)
{
FILE *ptr;
ptr=fopen("Registros_Libros.txt","a");
printf("\n(fin en -1)Nro.Libro: ");
scanf("%d",&p->nro_libro);
if(p->nro_libro == -1)
{
p->sig = NULL;
}
else
{
printf("Titulo: ");
scanf(" %[^\n]",p->titulo);
printf("Autor: ");
scanf(" %[^\n]",p->autor);
fprintf(ptr,"\n%d %s %s",p->nro_libro,p->titulo,p->autor);
p->sig = (nodo_alumnoslibros*)malloc(sizeof(nodo_alumnoslibros));
cargar2(p->sig);
}
fclose(ptr);
}