Ho un programma del genere:Perché questo programma va in loop infinito?
#include <stdlib.h>
#include <iostream>
static int pswd=0;
int main() {
do {
std::cout<<"I need your password:"<<std::endl;
std::cin>>pswd;
} while (pswd!=3855);
std::cout<<"Congratulations! Your password is correct! Your soul is free again!"<<std::endl;
}
E devo, può essere, una domanda stupida. Quando inserisco valori non validi (con simboli non numerici o valori maggiori di int) il programma passa in loop continuo senza leggere alcuna informazione dalla console.
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
I need your password:
...
Perché questo programma va in loop infinito?
Questo tratterà l'input non numerico come password corretta. – interjay
Forse sarebbe meglio assorbire l'input fallito invece di un 'break' –
Non ho davvero prestato attenzione alla semantica del ciclo. Si tratta principalmente di illustrare la gestione degli errori. –