06/07/2011, 19:15
|
| | Fecha de Ingreso: abril-2008
Mensajes: 3
Antigüedad: 16 años, 8 meses Puntos: 0 | |
Programa no guarda la estructura en archivo mi problema es el siguente, hice una agenda, pero el archivo no guarda los datos, si alguien me podria a encontrar el error, gracias
Código:
#include<stdio.h>
#define TAM 5
typedef struct
{
char nombre[20];
char direccion[60];
int telefono;
char mail[20];
}agenda;
void inicia_agenda(agenda lista[]);
void imprime_agenda(agenda lista[]);
//void elimina_agenda(agenda lista[]);
void cambiar_agenda(agenda lista[]);
int main()
{
agenda contactos[TAM];
agenda aux;
int opc, count=1;
int fin=TAM, del, i, m;
char s;
contactos[0].nombre[0]=0;
int tmp;
FILE *fp;
for(i=0;i<TAM;i++)
{
contactos[i].nombre[0]=0;
}
fopen("archivo.txt","a");
//fread(contactos, TAM, sizeof(contactos),fp);
do
{
printf(" \n* * * * * M E N U * * * * * \n");
printf("1.- Mostrar todos los datos\n");
printf("2.- Agregar una nota\n");
printf("3.- Eliminar nota\n");
printf("4.- Cambiar nota\n");
printf("5.- Salir\n");
scanf("%d", &opc);
switch(opc)
{
case 1:
imprime_agenda(contactos);
break;
case 2:
inicia_agenda(contactos);
break;
case 3:
printf("Eliminar por ID: ");
scanf("%d", &del);
del--;
for(i=del;i<fin;i++)
{
contactos[i]=contactos[(i+1)];
}
contactos[fin-1].nombre[0]=0;
fin--;
break;
case 4:
cambiar_agenda(contactos);
break;
}
}
while(opc!=5);
fwrite(contactos, sizeof(contactos), TAM, fp);
fclose(fp);
return 0;
}
void imprime_agenda(agenda lista[])
{
int i, count=0;
for(i=0;i<TAM;i++)
{
if(lista[i].nombre[0]!= 0)
{
printf("\nID: %d", i+1);
printf("\nNombre: %s", lista[i].nombre);
printf("\nDireccion: %s", lista[i].direccion);
printf("\nTelefono: %d", lista[i].telefono);
printf("\nCorreo Electronico: %s", lista[i].mail);
printf("\n*****************************************");
}
}
}
void inicia_agenda(agenda lista[])
{
int tmp;
tmp=0;
while((tmp<TAM) && (lista[tmp].nombre[0] != 0)) tmp++;
if(tmp<TAM)
{
printf("\nDame el nombre: ");
scanf("%s", lista[tmp].nombre);
printf("\nDame la direccion: ");
scanf("%s", lista[tmp].direccion);
printf("\nDame el telefono: ");
scanf("%d", &lista[tmp].telefono);
printf("\nDame el correo electronico: ");
scanf("%s", lista[tmp].mail);
//fin++;
}
else
printf("El arreglo esta lleno");
}
//void elimina_agenda(agenda lista[])
void cambiar_agenda(agenda lista[])
{
int m;
printf("Modificar: ");
scanf("%d",&m);
m--;
printf("Nombre ");
scanf("%s",lista[m].nombre);
printf("\nDireccion ");
scanf("%s",lista[m].direccion);
printf("\nTelefono ");
scanf("%d",&lista[m].telefono);
printf("\nCorreo electronico ");
scanf("%s",lista[m].mail);
}
|