elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Estructuras Anidadas en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Estructuras Anidadas en C  (Leído 985 veces)
Ghio97

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Estructuras Anidadas en C
« en: 3 Septiembre 2019, 03:57 am »

Tengo un problema con mi codigo, me compila sin problemas pero no ejecuta ninguna instruccion .
alguien podria ayudarme o marcar donde me esta fallando porfavor ?
Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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

listas *li;

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


int main(){
int i,j;
char temp[50];
int cont=0;
char aux;

FILE *f;
f=fopen("Lista1.txt","r");

if(f==NULL){
printf("no se ha podido abrir el archivo \n ");
exit(1);
}

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

rewind(f);

li=(listas*)malloc(cont*sizeof(listas));
if(li==NULL){
printf("no se ha podido reservar espacio \n");
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,4,f);
li->alumnoLi[i].matricula=atoi(temp);

printf("Nombre: %s  Matricula: %i \n",li->alumnoLi[i].nombre,li->alumnoLi[i].matricula);
}


system("pause");
return 0;
}

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

void copiar(char temp[],int i){
int N = strlen(temp) +1;
li->alumnoLi[i].nombre = (char*)malloc(N*sizeof(char));

if(li->alumnoLi[i].nombre == NULL){
printf("no se ha podido reservar meoria 2");
exit(1);
}
strcpy(li->alumnoLi[i].nombre,temp);
}

 :-\  :-\


« Última modificación: 4 Septiembre 2019, 05:11 am por Ghio97 » En línea

fary
Colaborador
***
Desconectado Desconectado

Mensajes: 958



Ver Perfil WWW
Re: Estructuras Anidadas en C
« Respuesta #1 en: 3 Septiembre 2019, 15:47 pm »

Pasa el archivo Lista1.txt.


En línea

Un byte a la izquierda.
MAFUS


Desconectado Desconectado

Mensajes: 1.495



Ver Perfil
Re: Estructuras Anidadas en C
« Respuesta #2 en: 3 Septiembre 2019, 18:47 pm »

Veo un fallo en:
Código:
//...
//leer nombre hasta final del fichero
for (i=0;!feof(f);i++){

// Conseguir los nombres de los archivos y copiarlos en las estructuras

}

// copia la matricula con 9 digitos del fichero
fgets(temp,9,f);
// atoi: pasar numeros en cadenas de caracteres a enteros
li[i].alumnoLi[i].matricula=atoi(temp);

¿Qué elemento crees que apunta i? Compruébalo.
Por otra parte: la carga del número de matrícula está fuera del for.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Ghio97

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Estructuras Anidadas en C
« Respuesta #3 en: 4 Septiembre 2019, 04:47 am »

Pasa el archivo Lista1.txt.


el contenido del archivo de texto (.txt) seria este:

Giovanni-201649716
Yoselin-201742587
Jose-201646812
Carlos-201623781
« Última modificación: 4 Septiembre 2019, 05:21 am por Ghio97 » En línea

Ghio97

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Estructuras Anidadas en C
« Respuesta #4 en: 4 Septiembre 2019, 05:07 am »

Veo un fallo en:
Código:
//...
//leer nombre hasta final del fichero
for (i=0;!feof(f);i++){

// Conseguir los nombres de los archivos y copiarlos en las estructuras

}

// copia la matricula con 9 digitos del fichero
fgets(temp,9,f);
// atoi: pasar numeros en cadenas de caracteres a enteros
li[i].alumnoLi[i].matricula=atoi(temp);

¿Qué elemento crees que apunta i? Compruébalo.
Por otra parte: la carga del número de matrícula está fuera del for.

Ya actualice el codigo y corregi los errores que me mencionas pero aun no trabaja como esperaria
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.495



Ver Perfil
Re: Estructuras Anidadas en C
« Respuesta #5 en: 4 Septiembre 2019, 10:22 am »

Hay que ir resolviendo poco a poco. ¿Cómo te ha quedado ahora?
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Estructuras anidadas, funciones y punteros
Programación C/C++
NathanD 9 8,405 Último mensaje 18 Marzo 2013, 08:56 am
por 85
Ayuda con borrado en estructuras anidadas
Programación C/C++
JHodges 8 2,259 Último mensaje 11 Junio 2015, 04:24 am
por rir3760
Estructuras anidadas en lenguaje C. -
Programación C/C++
NOB2014 3 2,929 Último mensaje 5 Febrero 2017, 18:42 pm
por ivancea96
Ayuda con estructuras anidadas
Programación C/C++
mari2diaz 3 849 Último mensaje 20 Julio 2018, 01:07 am
por engel lex
Estructuras Anidadas, dudas
Programación C/C++
mari2diaz 1 551 Último mensaje 9 Febrero 2020, 00:16 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines