Tengo una estructura llamada datos, que contiene los campos, dni, apellidos, y edad. Creo un fichero que tenga esos campos. Y ahora tengo que creear una lista con los apellidos, y otra con los dnis. Si alguien me puede ayudar, estoy desesperada. Gracias
Esto es lo que yo llevo hecho hasta ahora.
[CODE]
#include <stdio.h>
#include <malloc.h>
#include <string.h>
struct datos{
char ape1[15];
char DNI[10];
int edad;
};
/*
struct lista1 {
char ape1[15];
struct lista *sig;
};
struct lista2 {
char DNI[10];
struct lista2 *sig;
};
*/
struct datos introducirDatos();
void anyadirRegistro(struct datos d, char *fichero);
void verFichero(char *fichero);
main()
{
FILE *p;
char fichero[20];
char resp;
struct datos d;
int n;
printf("\nIntroduzca el nombre del fichero que desee: ");
gets(fichero);
fflush(stdin);
/* struct actores *v;
v = (struct actores *) malloc(sizeof(struct actores);*/
do{
d = introducirDatos();
printf("¿Desea introducir un estudiante mas: ");
scanf("%s", &resp);
fflush(stdin);
}while(resp == 's' || resp == 'S');
anyadirRegistro(d, fichero);
/verFichero(fichero);
}
struct datos introducirDatos()
{
struct datos aux;
printf("Apellido1: ");
gets(aux.ape1);
printf("DNI: "),
gets(aux.DNI);
printf("Edad: ");
scanf("%d", &aux.edad);
getchar();
fflush(stdin);
return (aux);
}
void anyadirRegistro(struct datos d, char *fichero)
{
FILE *fp;
fp = fopen(fichero, "ab");
fwrite(&d, sizeof(struct datos),1, fp);
fclose(fp);
}
void verFichero(char *fichero)
{
FILE *fp;
struct datos d;
fp = fopen(fichero, "rb");
/*)==NULL) {
printf("Error al abrir el fichero\n");
exit(-1);
}*/
while(fread(&d, sizeof(struct datos),1 , fp)==1)
{
printf(" %s %s %d \n", d.ape1, d.DNI, d.edad);
}
fclose(fp);
}
/*