codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXS 20
typedef struct Persona {
char nome[20];
char cognome[20];
char indirizzo[20];
int telefono;
char nota[20];
} persona;
int main() {
FILE*fp,*fp2;
int scelta; persona info;
char file[MAXS];
int inserire,togliere,cercare,coppie,altro;
char file2[MAXS];
int i;
printf("inserire nome file:");
gets(file);
char cognomex[20];
fp=fopen(file,"r");
if(fp==NULL) {
printf("impossibile aprire file %s",file);
return -1; } printf("inserire nome file in scrittura:");
gets(file2);
fp2=fopen(file2,"w");
if(fp2==NULL) {
printf("impossibile la scrittura \n");
return -2;
}
i=0;
'1'=inserire;
'2'=togliere;
'3'=cercare;
'4'=coppie;
'5'=altro;
printf("seleziona menu la scelta per la selezione:\n");
scanf("%s",&scelta);
while(fscanf(fp,"%s-%s-%s-%d-%s\n",info.nome,info.cognome,info.indirizzo,&info.telefono,info.nota)!=EOF) {
switch(scelta) {
case '1':
printf("inserisci nome :");
scanf("%s",info.nome);
printf("inserisci indirizzo: \n");
scanf("%s",info.indirizzo);
printf("inserisci telefono: \n");
scanf("%d",&info.telefono);
printf("inserisci nota: \n");
scanf("%s",info.nota);
fprintf(fp2,"%s-%s-%s-%d-%s",info.nome,info.cognome,info.indirizzo,&info.telefono,info.nota);
break;
case '2':
printf("persona da togliere:");
scanf("%s",cognomex);
if(strcmp(info.cognome,cognomex)==0)
fprintf(fp2,"%s-%s-%s-%d-%s",info.nome,info.cognome,info.indirizzo,&info.telefono,info.nota);
break; case '3': printf("inserisci nome da cercare:\n");
scanf("&s",cognomex);
if(strcmp(info.cognome,cognomex)==0)
fprintf(fp2,"%s-%s-%s-%d-%s",info.nome,info.cognome,info.indirizzo,&info.telefono,info.nota);
break;
case '4':
fprintf(fp2,"%s-%s",info.nome,info.cognome);
break;
case '5':
fclose(fp);
break;
default: printf("voce non trovata\n");
break;
}
}
i++;
fclose(fp);
fclose(fp2);
return 0;
}