View Full Version : [c++]: switch
Salve,
in uno switch che prende la scelta come intero se viene inserito un carattere il programma va in loop. come posso eviter ciò mettendo un controllo, c'è un metodo che mi verifica se una variabile è stringa?
grazie
Dipende da come leggi l'input.
è un menu numerato, quindi prendo l'input come intero
è un menu numerato, quindi prendo l'input come intero
Ripeto: dipende da quali istruzioni usi per leggere l'input. Mi dovresti far vedere la parte di lettura, se usi cin basta visualizzare un messaggio di errore in caso cin.fail() sia vero e poi eseguire di nuovo la lettura resettando lo stato con cin.clear().
susami tanto allora questo è il codice:
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;
}
}
Qui hai un'opzione più semplice ;)
Leggi un carattere:
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;
}
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.