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); }