In breve il codice è il seguente :
// DATA
bool data_Corr = true;
do {
if (data_Corr == false) {
printf("\t \t \t \n \n Attenzione! \n \n");
printf("\t \t \t La data inserita deve essere succesiva a quella corrente.\n");
}
printf("\t \t \t \t INSERIMENTO NUOVO SPETTACOLO \n \n ");
do {
if (!data_CorrettaIn) {
printf("\n\n \t \t \t Attenzione!\n");
printf("\t \t \t La data inserita non e' corretta. Si prega di inserirla nuovamente. \n \n");
}
do {
printf("\t \t \t Giorno : ");
scanf("%d", &giorno_In);
} while (giorno_In < 1 || giorno_In > 31);
do {
printf("\n\t \t \t Mese : ");
scanf("%d", &mese_In);
} while (mese_In < 1 || mese_In > 12);
printf("\n\t \t \t Anno : ");
scanf("%d", &anno_In);
data_CorrettaIn = verifica_Data(giorno_In, mese_In, anno_In);
} while (!data_CorrettaIn);
data_Corr = (differenza_DateOggi(giorno_In, mese_In, anno_In) >= 0);
} while (!data_Corr);
while ('\n' != getchar());
snprintf(data_In, 11, "%d/%d/%d", giorno_In, mese_In, anno_In);
strcpy(nuovo_Nodo -> data, data_In);
// ORA
bool ora_Corr = true;
do {
if (ora_CorrettaIn == false) {
clear_Console();
titolo();
printf("\t \t \t \n \n Attenzione! \n");
printf("\t \t \t L'ora' inserita non e' corretta. Riprovare. \n \n");
}
printf("\t \t \t Ora : ");
scanf("%d", &hh_In);
printf("\n\t \t \t Minuti: ");
scanf("%d", &mm_In);
while ('\n' != getchar());
ora_CorrettaIn = verifica_Ora(hh_In, mm_In);
} while (!ora_CorrettaIn);
snprintf(ora_In, 5, "%d|%d", hh_In, mm_In);
strcpy(nuovo_Nodo -> ora, ora_In);
}
// Verifico se nel file ci sono utenti registrati (LISTA VUOTA o LISTA NON VUOTA)
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
if (size == 0) {
fprintf(fp, "%d,%d,%s,%s,%s,%d,%d", nuovo_Nodo -> sala, nuovo_Nodo -> id, nuovo_Nodo -> titolo, nuovo_Nodo -> data,
nuovo_Nodo -> ora, nuovo_Nodo -> posti_disponibili, nuovo_Nodo -> posti_occupati);
} else { //filE NON VUOTO : controllare ID
fprintf(fp, "\n%d,%d,%s,%s,%s,%d,%d", nuovo_Nodo -> sala, nuovo_Nodo -> id, nuovo_Nodo -> titolo, nuovo_Nodo -> data,
nuovo_Nodo -> ora, nuovo_Nodo -> posti_disponibili, nuovo_Nodo -> posti_occupati);
}
La parte relativa alla DATA funziona correttamente, l'ORA invece mi crea la “d” finale nel salvataggio su file, ad esempio se inserisco 17 e 15 sul file compare “17|15d”.