Error de ejecucion

03/02/2004 - 00:26 por AsEr_7 | Informe spam
Hola,
EL programa consiste en:
primero te pedira datos:
Nombre, y edad,
creara una lista encadenada, en funcion de que le digas
si o no.
Despues lo volcara a un archivo, "Agenda.dat", que se
creara automaticamente.
Pero despues no visualiza nada, y da error de ejecucion.

No se si quiera, si el programa carga los datos
introducidos al fichero qeu se crea...

Ayudazme, porfavor...

Codigo:

//////////////////////////////////////////////////////////
////////////
////// INCLUDES DEL
PROGRAMA ///////////
//////////////////////////////////////////////////////////
////////////

#include <stdio.h>
#include <conio.h>
#include <malloc.h>

//////////////////////////////////////////////////////////
////////////
//////
TYPEDEF
//////////
//////////////////////////////////////////////////////////
////////////


typedef struct nodo * PUNT_NODO;
typedef char * PUNT_CHAR;
typedef FILE * FICHERO;

typedef struct
{
char nombre [20];
short edad;
}FICHA;

typedef struct nodo
{
FICHA info;
PUNT_NODO enlace;
}NODO;

//////////////////////////////////////////////////////////
////////////
////// PROTOTIPOS DE FUNCIONES
//////////
//////////////////////////////////////////////////////////
////////////

PUNT_NODO vuelca_fichero_a_lista (PUNT_CHAR nomfich);
PUNT_NODO crea_nuevo (FICHA elemento);
//void visualiza_info_lista (PUNT_NODO cabeza);
PUNT_NODO crea_lista (void);
FICHA pide_datos (void);
// Funcion de Salida
PUNT_NODO crea_nodo (PUNT_NODO cabeza, FICHA elemento);
void vuelca_lista_a_fichero (PUNT_NODO cabeza, PUNT_CHAR
nomfich);


/*********************************************************
************************/
////////// FUNCION
MAIN
///////////////
/*********************************************************
************************/

void main (void)
{
PUNT_NODO cabeza = (PUNT_NODO) NULL;
char nomfich [] = ("Agenda.dat");

vuelca_fichero_a_lista (nomfich);
//visualiza_info_lista (cabeza);
crea_lista ();
vuelca_lista_a_fichero (cabeza, nomfich);
}

/*********************************************************
************************/
///////// RESTO DE
FUNCIONES
///////////////
/*********************************************************
************************/

PUNT_NODO vuelca_fichero_a_lista (PUNT_CHAR nomfich)
{
FICHERO punt_fich;
PUNT_NODO cabeza, nuevo;
FICHA elemento;

cabeza = (PUNT_NODO) NULL;

if ((punt_fich = fopen (nomfich, "rb")) !=
(FICHERO) NULL)
{
while (fread(&elemento, sizeof(FICHA), 1,
punt_fich))
{
nuevo = crea_nuevo (elemento);
}
fclose (punt_fich);
}
return (cabeza);
}

/*********************************************************
***************************/

PUNT_NODO crea_nuevo (FICHA elemento)
{
PUNT_NODO nuevo;

nuevo = (PUNT_NODO)malloc(sizeof(NODO));

nuevo -> info = elemento;
nuevo ->enlace = (PUNT_NODO) NULL;

return (nuevo);

}

/*********************************************************
*************************

void visualiza_info_lista (PUNT_NODO cabeza)
{
PUNT_NODO recorre;

recorre = cabeza;

if (cabeza = (PUNT_NODO) NULL)
printf ("La lista esta vacia.");
else
{
puts (recorre -> info.nombre);
printf (" tiene %hd
años.", recorre ->info.edad);

recorre = cabeza ->enlace;
}
}






/*********************************************************
***************************/

PUNT_NODO crea_lista (void)
{
FICHA elemento;
PUNT_NODO nuevo, cabeza = (PUNT_NODO) NULL;

nuevo = crea_nodo (cabeza, elemento);

return (nuevo);
}

/*********************************************************
*************/

FICHA pide_datos (void)
{
FICHA nuevo;

printf ("Nombre: ");
fflush (stdin);
gets (nuevo.nombre);
printf ("Edad: ");
scanf ("%hd", &nuevo.edad);

return (nuevo);

}

/*******************************************/

PUNT_NODO crea_nodo (PUNT_NODO cabeza, FICHA elemento)
{
PUNT_NODO nuevo;
char respuesta;

do
{

nuevo = (PUNT_NODO)malloc(sizeof(NODO));

elemento = pide_datos ();

nuevo -> info = elemento;
nuevo -> enlace = cabeza;
cabeza = nuevo;
free (nuevo);

printf ("\tMas elementos? (S/N)");

}
while ((respuesta = getch ()) == 's' || respuesta
== 'S');

return (cabeza);

}

/*********************************************************
*/

void vuelca_lista_a_fichero (PUNT_NODO cabeza, PUNT_CHAR
nomfich)
{
FICHERO punt_fich;
PUNT_NODO viejo;

if((punt_fich = fopen (nomfich, "wb")) !=
(FICHERO) NULL);
{
while (cabeza != (PUNT_NODO) NULL)
{
fwrite(&cabeza -> info, sizeof
(FICHA), 1, punt_fich);

viejo = cabeza;
cabeza = cabeza -> enlace;
free (viejo);
}
fclose (punt_fich);
}
}
.
 

Leer las respuestas

#1 pablo crosio
03/02/2004 - 16:32 | Informe spam
Hola!

Te posteé una respuesta en la lista de C#

Salu2!

Pablo

Hola,
EL programa consiste en:
primero te pedira datos:
Nombre, y edad,
creara una lista encadenada, en funcion de que le digas
si o no.
Despues lo volcara a un archivo, "Agenda.dat", que se
creara automaticamente.
Pero despues no visualiza nada, y da error de ejecucion.

No se si quiera, si el programa carga los datos
introducidos al fichero qeu se crea...

Ayudazme, porfavor...

Preguntas similares