Uso de Estructuras dentro de Estructuras en C

Iniciado por Ghio97, 27 Agosto 2019, 05:44 AM

0 Miembros y 1 Visitante están viendo este tema.

Ghio97

Tengo problemas al acceder datos desde un documento de texto a una estructura dentro de otra estructura

Ayuda por favor  :( :laugh:


#include<stdio.h>
#define N 50
#include<string.h>
#include<stdlib.h>

typedef struct{
char profesor;
char materia;
typedef struct{
char *nombre;
int *matricula;
char fecha[30];
}alumno;

}lista;

lista *li;

void copiar(char temp[], int i);
void vaciar(char temp[]);


int main (){


}


void ingresarAlumno(){
int cont;
char temp[50];
int i,j;
char aux;

FILE *f;
f=fopen("Lista.txt","r");
if(f=NULL){
printf("ERROR \n");
exit(1);}

while(!feof(f)){
fgets(temp,50,f);
cont++;
}
rewind(f);

li=(lista*)malloc(cont*sizeof(lista));

if(li==NULL){
printf("NO se pude reservar la memoria");
exit(1);
}

for (i=0;!feof(f);i++){
vaciar(temp);
aux='0';
for(j=0;aux != '-';j++){
aux=fgetc(f);
if(aux != '-'){
temp[j]=aux;
}
}
copiar(temp,i);
}
fgets(temp,9,f);
li->alumno.matricula=atoi(temp);

printf("nombre; %s matricula: %i",li->alumno.nombre,li->alumno.matricula);
}

void vaciar(char temp[]){
int i;
for (i=0;i<50;i++){
temp[i]='\0';
}
}

void copiar(char temp[], int i){
int k = strlen(temp)+1;
li->alumno.nombre=(char*)malloc(k*sizeof(char));
if (li->alumno.nombre==NULL){
printf("ERROR");
exit(1);
}
strcpy(li->alumno.nombre,temp);
}