robs05
04-01-2009, 16:34
Dato il seguente codice....
char scelta;
while(true)
{
cout << " \n1) funzione 1 ";
cout << " \n2) funzione 2 ";
cout << " \n3) funzione 3 ";
cout << " \n4) Esci\n" << endl;
cout << "Scegli: ";
cin >> scelta;
switch(scelta)
{
case '1':
d->funzione1();
break;
case '2':
d->funzione2();
break;
case '3':
d->funzione3();
break;
case '4':
exit(0);
break;
default:
cout << "Scelta non consentita" << endl;
break;
}
}
se al posto di inserire un numero inserisco una sequenza di caratteri, esempio: "asdfsd"
mi ripete per 6 volte (in questo caso dato che sono sei caratteri) l'elenco delle opzioni. Ovviamente perchè dallo standard di input legge 6 char....
come posso risovere questo problema?
in effetti se l'utente sbaglia ad inserire dati ed al posto del numero inserisce una stringa il programma dovrebbe ripetere una sola volta l'elenco delle opzioni....
saluti
char scelta;
while(true)
{
cout << " \n1) funzione 1 ";
cout << " \n2) funzione 2 ";
cout << " \n3) funzione 3 ";
cout << " \n4) Esci\n" << endl;
cout << "Scegli: ";
cin >> scelta;
switch(scelta)
{
case '1':
d->funzione1();
break;
case '2':
d->funzione2();
break;
case '3':
d->funzione3();
break;
case '4':
exit(0);
break;
default:
cout << "Scelta non consentita" << endl;
break;
}
}
se al posto di inserire un numero inserisco una sequenza di caratteri, esempio: "asdfsd"
mi ripete per 6 volte (in questo caso dato che sono sei caratteri) l'elenco delle opzioni. Ovviamente perchè dallo standard di input legge 6 char....
come posso risovere questo problema?
in effetti se l'utente sbaglia ad inserire dati ed al posto del numero inserisce una stringa il programma dovrebbe ripetere una sola volta l'elenco delle opzioni....
saluti