|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1262
|
[c] problema per un menu...
mi é sorto un altro problema:
io ho un dato da inserire, pero voglio far si che se voglio tornare al menu principale, premendo ESC, questo torni indietro: cosi ho fatto questo: backmenu(ENTRATA *ent) { int ch1; while (kbhit ()) getch(); if (kbhit () == 0) { ch1 = getch (); switch (ch1) { case ESC: ent->rit = 4; break; break; } } } questa funzione é inserita in questa parte di codice: int inserisci_entrate (ENTRATA *ent) { float dato2; int a = 0; char motivo[60], dato[10], *p; FILE *f2; while(a != 1) { printf("SALDO: "); backmenu(ent); if(ent->rit == 4) break; fgets(dato, sizeof(dato), stdin); if ((f2 = fopen ("spese.doc", "a")) == NULL) return 0; /* Errore */ printf("MOTIVO ENTRATA/USCITA: "); backmenu(ent); if(ent->rit == 4) break; fgets(motivo, sizeof(motivo), stdin); if ((p = strchr (motivo, '\n')) != NULL) *p = '\0'; dato2 = atof (dato); if(dato2 < 0) { ent->uscite = ent->uscite + dato2; fprintf(f2,"\t\t%.2f ", dato2); } if(dato2 > 0) { ent->entrate = ent->entrate + dato2; fprintf(f2,"%.2f ", dato2); } ent->attivo = ent->attivo +dato2; fprintf(f2,"%s\n", motivo); fclose(f2); a++; } } sono due i problemi: il primo é ke se nn premo ESC il primo carattere viene "sprecato" x quella funzione, quindi se digito ciao, vien fuori iao; il secondo problema é: se io digito una parola, poi pero la cancello, la funzione backmenu() é "superata" quindi nn attiva, come fare? grazie!!!!!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1262
|
nessuno sa aiutarmi?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:25.



















