codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define userfile "users.txt"
typedef struct{
char nome[30];
char cognome[30];
char citta[30];
char provincia[30];
int eta;
} user;
int main(void){
FILE *fp;
user u;
int scelta;
if(!(fp=fopen(userfile, "a"))){
printf("Errore.\n");
exit(1);
}
printf("Database.\n\nInserisci il numero relativo all'operazione che vuoi effettuare:\n");
printf("1 - Inserisci Utente\n");
printf("2 - Modifica Utente\n");
printf("3 - Visualizza Utenti\n");
printf("4 - Cerca Utente\n");
printf("5 - Elimina Utente\n");
printf("6 - Esci\n\n");
scanf("%d", &scelta);
fflush(stdin);
if (scelta==1){
system("cls");
int oper;
printf("Inserimento utente nel database.\n\n");
puts("Nome:");
fgets(u.nome, 30, stdin);
fflush(stdin);
puts("\nCognome:");
fgets(u.cognome, 30, stdin);
fflush(stdin);
puts("\nCitta':");
fgets(u.citta, 30, stdin);
fflush(stdin);
puts("\nProvincia:");
fgets(u.provincia, 30, stdin);
fflush(stdin);
printf("\nEta':\n");
scanf("%d", &u.eta);
// Scrivo i dati su file
fprintf(fp, "%s%s%s%s%d\n\n", u.nome, u.cognome, u.citta, u.provincia, u.eta);
printf("\n\nDati inseriti con successo.\n\n");
fclose(fp);
printf("Premere 1 per tornare al menu, 0 per uscire: ");
scanf("%d", &oper);
if (oper==1){
system("cls");
main();
} else if (oper==0){
return 0;
}
system("cls");
main();
} else if (scelta==3){
system("cls");
int oper;
fp=fopen(userfile, "r");
if(fp){
while(!feof(fp)){
fgets(u.nome, 30, fp);
fgets(u.cognome, 30, fp);
fgets(u.citta, 30, fp);
fgets(u.provincia, 30, fp);
fscanf(fp, "%d\n", &u.eta);
printf("Nome: %sCognome: %sCitta': %sProvincia: %sEta': %d\n\n", u.nome, u.cognome, u.citta, u.provincia, u.eta);
}
fclose(fp);
printf("Premere 1 per tornare al menu, 0 per uscire: ");
scanf("%d", &oper);
if (oper==1){
system("cls");
main();
} else if (oper==0){
return 0;
}
}
else {
printf("Errore durante l'apertura del file.\n");
}
} else if (scelta==4){
FILE *fp;
char nome1[30];
printf("Inserisci il nome da cercare: ");
scanf("%s", &nome1);
fp=fopen(userfile, "rt");
while (fgets(u.nome, 30, fp)!=NULL){
if(strstr(u.nome, nome1)!=NULL){
printf(nome1);
}
}
} else if (scelta==6){
return 0;
}
}