Salve a tutti recentemente continuando lo studio e la lettura del libro riguardante la programmazione in C sono arrivato al capitolo in cui viene spiegato come creare/aprile un file (in questo caso di testo) e come successivamente modificarlo o semplicemente leggerlo.
Mi sorge però un problema: Quando vado a selezionare l'opzione 2 cioè "modifica del DataBase" il programma non rileva il comando fgets ritornando alla selezione del menu. In cosa sbaglio?? Lascio qui sotto ovviamente il codice. Grazie in anticipo per l'aiuto!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
FILE *db;
int option, returnvalue;
char *string = (char *) malloc(100*sizeof(char));
do{
printf("\t\t\n SCEGLIERE UN OPZIONE");
printf("\t\n 1) Creazione del Data Base");
printf("\t\n 2) Modifica del Data Base");
printf("\t\n 3) Lettura del Data base");
printf("\t\n 0) Exit");
printf("\n Inserisci la tua scelta: ");
scanf("%d", &option);
if (option == 1){
db = fopen("DataBase", "w"); /*creazione del file*/
fclose(db);
}
else{
if (option==2){
printf("Inserire ciò che si desidera: ");
fgets(string, 100, stdin);
db = fopen("DataBase","a");
fwrite(string, 1, 100, db);
free(string);
fclose(db);
}
else{
if (option == 3){
db= fopen("DataBase","r");
do{
returnvalue = fread(string, 1, 100, db);
if (returnvalue < 0) /*Il file esiste?*/
printf("Il file DataBase non esiste!");
else
printf("\n\t\"%s\"", string);
} while (returnvalue!=0); /*stampa tutto il contenuto del file*/
fclose(db);
free(string);
}
}
}
}while(option !=0);
}