C/Visual C - Grabar Lista enlazada en Fichero

 
Vista:

Grabar Lista enlazada en Fichero

Publicado por Eduardo (1 intervención) el 14/03/2008 23:09:58
Hola!!! Quisiera Grabar mi lista enlazada en un fichero!! Como podria hacerlo?? Gracias de todas formas

struct datos
{
int codigo;
char nombre[10];
}; // Estructura que define los datos a manejar por el programa

struct nodo
{
struct datos dato;
struct nodo *sig;
};

struct nodo * introducir( struct nodo *cabeza);
int menu();
void listar(struct nodo *cabeza);

void main ()
{
struct nodo *primero=NULL;
int opc;

do
{
opc=menu();
switch(opc)
{
case 1:
primero=introducir(primero);
break;
case 2:
listar(primero);
break;
}
}while(opc!=3);
}

int menu()
{
int opcion;

do
{
system("cls");
printf(" MeNu ");
printf(" 1.- ReGisTraR uNa VeNTa.");
printf(" 2.- LiSTar.");
printf(" 3.- SaLiR.");
printf(" IntroDuzCa uNa oPCioN... ");
scanf("%d",&opcion);
if(opcion<=0 || opcion>3)
printf(" MEEEEEC. 3RR0R");
}while(opcion<=0 || opcion>3);

return opcion;
}

struct nodo *introducir( struct nodo *cabeza)
{
struct nodo *aux=cabeza;
struct nodo *paux;

aux=(struct nodo *)malloc(sizeof(struct nodo));
if(aux==NULL)
exit(-1);

aux->sig=NULL;

printf(" CoDiGo... ");
scanf("%d",&aux->dato.codigo);
fflush(stdin);
printf(" NomBre... ");
scanf("%10[^ ]", &aux->dato.nombre);

if(cabeza==NULL)
cabeza=aux;
else
{
paux=cabeza;
while(paux->sig!=NULL)
{
paux=paux->sig;
}
paux->sig=aux;
}

return cabeza;
}

void listar(struct nodo *cabeza)
{
struct nodo *paux; // --> Se crea puntero auxiliar

paux=cabeza; // --> Se igualan ambos. Esto se hace para recorrer con el
// puntero y no el parametro cabeza.

/*( Proceso... Como recorrer un puntero)*/

while(paux!=NULL)
{
//(1). Si puntero aux es != nuLL...
// Visualizo los datos de la venta registrados en el nodo paux

printf(" ...ProDuCTo... ");
printf(" CoDiGo.... %d",(paux->dato).codigo);
printf(" NoMBre.. %s",(paux->dato).nombre);

//(2). Avanzo un nodo...
paux=paux->sig;
}
return;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder