PDA

Visualizza la versione completa : [C] problema switch


roberto81
19-04-2010, 10:34
ciao ragazzi problemino con switch
questo una prova per rendersi conto di cosa voglio dire


#include <stdio.h>
#include <stdlib.h>
int main()
{
int val,quit=0;
while(!quit)
{
printf("sleziona:");
scanf("%d",&val);
switch(val)
{
case 1:
printf("\npremuto1\n");
break;
case 2:
printf("\npremuto2\n");
break;
case 3:
quit=1;
break;
default:
printf("\nerrore\n");
};
};
return(0);
}

return(0);
}

ora finche premo 1 2 3 tutto ok ma il caso default funziona solo con i numeri da 0 a 9 ma se
una persona preme ad esempio "a" il programma impazzisce e non mi ripropone il mess seleziona ma cicla all'infinito

oregon
19-04-2010, 10:53
Leggi questo

http://forum.html.it/forum/showthread.php?s=&threadid=1397414

roberto81
19-04-2010, 11:45
ottimo ma vorrei sapere
dato che non includo conio.h ho usato getchar() e sembra funzionarmi ugualmente te cosa ne
pensi?
ora mi potresti spiegare in due righe come lo pulisce il buffer il while grazie....

MItaly
19-04-2010, 11:49
Originariamente inviato da roberto81
ottimo ma vorrei sapere
dato che non includo conio.h ho usato getchar() e sembra funzionarmi ugualmente te cosa ne
pensi?
getchar() dichiarata in stdio.h. conio.h un header non standard, e come tale andrebbe evitato.


ora mi potresti spiegare in due righe come lo pulisce il buffer il while grazie....
Semplicemente leggendo caratteri fino a che non incontra il ritorno a capo, segno che la riga di testo errata terminata. Nulla di trascendentale. :)

Loading