Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda con Ejercicio de Listas y Archivos
Autor Mensaje
nanohueso Sin conexión
Campeon del cubo Rubik
Thats what she said
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 187
Agradecimientos dados: 132
Agradecimientos: 14 en 10 posts
Registro en: Feb 2012
Mensaje: #1
Ayuda con Ejercicio de Listas y Archivos Dudas y recomendaciones Informática I (Electrónica)
HIce un Programa que crea iterativamente una lista con n nodos que se van agregando al comienzo la lista hasta que se cumple el while y despues , con otra funcion, levanta la lista , lo pone en un archivo , dps con otra funcion levanta el archivo y lo imprime en pantalla.

Compilacion: OK . 0 errors y 0 warnings
Ejecucion: Cuando termino de llenar la lista, se me cuelga el programa ahi, ya probe poniendo printfs y como que sale del while pero se queda ahi afuera nose que onda...

Spoiler: Mostrar

#include <stdio.h>
#include <stdlib.h>
typedef struct nodo{ // Lista simplemente enlazada
int dato;
struct nodo *next;
}nodos;
FILE * archivar(nodos *H); // funcion que recibe la lista y la mete en una archivo y devuelve el archivo
void funcion2(FILE *); // la funcion reibe el archivo , hay que leer los datos adentro , meterlos en una lista e imprimirlos

int main()
{
nodos *H=NULL; // EL header de la lista, siempre apunta al primer nodo de la lista
nodos *NODO=NULL;
int n; // cantidad de nodos que voy a ingresar
int i=0;
printf("¿Cuantos nodos desea ingresar?\n");
scanf("%d",&n);
H=NULL;
while(i<n)
{
NODO=(nodos*) malloc(sizeof(nodos));
printf("\nIngrese el valor del nodo:");
scanf("%d",&(NODO->dato));
NODO->next =H;
H=NODO;
i++;
printf(" \n --------\n");
}
funcion2((archivar(H)));
return 0;
}
FILE * archivar(nodos *H)
{
FILE * fp;
nodos *aux1;
aux1= H;
fp= fopen("datos1.db","w+t");
while( aux1 != NULL);
{
fwrite(&(aux1->dato),sizeof(int),1,fp);
aux1=aux1->next;
}
return fp;
}
/*-----------------------------------------------------------------*/
void funcion2(FILE *fp)
{
nodos *H;
H= (nodos*) malloc(sizeof(nodos));
while((fread(&(H->dato),sizeof(int),1,fp))!= 0 )
{
printf("\n El valor del nodo es %d \n",H->dato);
}
printf("\n Fin de la lectura del archivo \n");
}

(Este mensaje fue modificado por última vez en: 10-12-2012 12:15 por nanohueso.)
10-12-2012 01:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.