ragazzi ho un problemino:
codice:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstdlib>
using std::rand;
using std::srand;
#include <ctime>
using std::time;
#include "educational.h"
educational::educational(){
srand( time ( 0 ) );
int n1 = 1 + rand() % 9;
int n2 = 1 + rand() % 9;
int input = getMessage(n1, n2);
int multiplex = n1*n2;
while (!verifica(input, multiplex)){
input=getError();
}
cout<<input;
cout<<"Complimenti, la tua risposta e' esatta!"<<endl;
}
int educational::getMessage(int n1, int n2){
int num;
cout<<"Quanto fa "<<n1<<" per "<<n2<<"?"<<endl;
cin>>num;
return num;
}
bool educational::verifica(int input, int multiplex){
return (input == multiplex);
}
int educational::getError(){
cout<<"Hai sbagliato, prova ancora:"<<endl;
int input;
cin>>input;
return input;
}
eseguendo questo codice da un main succede funziona e tutto ok, ma se per caso, invece di inserire un numero, inserisco un carattere letterale, mi entra in un ciclo infinito stampando
Hai sbagliato, prova ancora:
Hai sbagliato, prova ancora:
Hai sbagliato, prova ancora:
Hai sbagliato, prova ancora:
Hai sbagliato, prova ancora:
Hai sbagliato, prova ancora:
e così via fino all'infinito cosa diamine succede??