C++ agenda

Ola por favor necesito el codigo de este lenguaje ya casi esta terminado falta muy poco pero esto tiene algunos errores pues bo hace lo que quiero que aga, en primera si introdusco los datos pero al momento de verlos no aparecen todos, ademas no se borran por favor lo necesito bueno aqui esta lo que llevo...
/* Agenda de telefonos*/
#include "stdio.h"
#include "stdlib.h"
#define MAX 5
struct dir {
char nombre[30];
char calle[40];
char ciudad[20];
char telefono[12];
} datos[MAX];
void inic_lista(void);
void intro(void);
void borrar(void),listar(void);
int menu(void),busca_libre(void);
/*Bloque Principal**********************************************/
main(void)
{
char opcion;
inic_lista();
for (;;)
{
opcion = menu();
switch(opcion)
{
case 1: intro();
break;
case 2:borrar();
break;
case 3: listar();
break;
case 4: exit(0);
}
}
}
/*rutina para inicilizar el array**********************************/
void inic_lista(void)
{
register int t;
for (t=0; t<MAX; ++t)
datos[t].nombre[0]='\0';
}
/*rutina para vizulizar un menu************************************/
menu (void)
{
char s[80];
int c;
printf("\n\n\n\n");
printf(" MENU \n\n");
printf ("1. Introducir un nombre\n");
printf ("2. Borrar un nombre \n");
printf ("3. Listar el archivo\n");
printf ("4. Salir\n");
do
{
printf("\nIntroduzca su opcion NUMERICA : ");
gets(s);
c = atoi(s);
}
while(c<0 || c>4);
return c;
}
/*rutina para introducir un dato****************************************/
void intro(void)
{
int sitio;
sitio = busca_libre();
if(sitio==-1)
{
printf("\n lista llena");
return;
}
printf("introduzca nombre: ");
gets(datos[sitio].nombre);
printf("introduzca calle: ");
gets(datos[sitio].calle);
printf("introduzca ciudad: ");
gets(datos[sitio].ciudad);
printf("introduzca telefono: ");
gets(datos[sitio].telefono);
}
/*rutina para buscar una localidad vacia***********************************/
busca_libre(void)
{
register int t;
for (t=0;datos[t].nombre[0] && t<MAX;++t);
if (t==MAX)
return -1;
return t;
}
/* rutina para borrar un dato*********************************************/
void borrar(void)
{
register int sitio;
char s[80];
printf("Introdusca el numero de registro");
gets(s);
sitio= atoi(s);
if (sitio>=0 && sitio< MAX)
datos[sitio].nombre[0]='\0';
}
/* rutina para listar los datos********************************************/
void listar(void)
{
register int t;
for (t=0; t<MAX;++t)
{
if(datos[t].nombre[0])
{printf("posicion %s\n",t);
printf ("%s\n",datos-> nombre);
printf ("%s\n",datos->calle);
printf ("%s\n",datos->ciudad);
printf ("%s\n",datos->telefono);
}
}
printf("\n\n");
}
Por favor lo necesito
Respuesta
-1
En la función listar tienes:
  printf("posicion %s\n",t);
debes poner
 printf("posicion %i\n",t);
En principio no veo nada mas pero puedes hacer un fflush(stdin)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas