#include #define TAM 20 struct dato { char n_vino[30]; int agno; }; FILE *ap; // Apuntador a archivo /* Muestra menú y lee la opción */ char menu() { printf("1. Intruduce vino\n"); printf("2. Mostrar vinos\n"); printf("3. Cosecha mas antigua\n"); printf("4. Salir\n"); printf("\n Elige opcion..."); return getchar(); } /* Da de alta un nuevo elemento */ /* Paso de parámetros por referencia */ void altas(int *k, struct dato *vig) { if (*kvignedo[j].agno) viejo=j; printf("\nVino: %s \n",vignedo[viejo].n_vino); } /* Programa Principal */ main() { struct dato vignedo1[TAM],vignedo2[TAM]; char opc,nom_arch[20]; int i=0,j; printf("\n Da el nombre del archivo: "); scanf("%s",nom_arch); getchar(); //ap=fopen(nom_arch,"w"); if ((ap=fopen(nom_arch,"w"))!=NULL) { do { opc=menu(); getchar(); switch (opc) { case '1': altas(&i, vignedo1); fwrite(&vignedo1[i-1],sizeof(vignedo1),1,ap); break; case '2': muestra(i, vignedo1); break; case '3': buscar_viejo(i, vignedo1); break; case '4': printf("\n Salir ....\n"); break; default : printf("\n Error!!! \n"); } }while (opc!='4'); fclose(ap); } else printf("\n Error en el archivo"); if ((ap=fopen(nom_arch,"r"))!=NULL) { for (j=0; j