dupa
30-12-2004, 01:01
Sto sclerando con l'uso di "cin" in c++.
In pratica mi serve poter fare un accurato controllo dell'input dell'utente specialmente se esso non corrisponde al tipo di variabile nel quale cin scrive il valore letto.. ad esempio:
#include <iostream>
#include <limits>
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
int input;
while (cout << "Enter a number: " && !(cin >> input))
{
cout << "\nInvalid input" <<endl;
cin.clear();
cin.ignore(std::numeric_limits < int >::max(), '\n');
}
cout <<"You entered " <<input;
}
Se inserisco:
343434 -> tutto.. OK
qwqwq -> me lo rileva come errato.. OK
we2332 -> me lo rileva come errato.. OK
322uuu -> me lo rileva corretto come "322".. SBAGLIATO!
io voglio che non accetti questo ultimo valore..
inoltre quando accetta quest'ultimo valore poi se uso cin successivamente fa casino e "impazzisce".
Potresti dirmi come fare in modo che quest'ultimo valore non venga considerato valido...
E specialmente potreste consigliarmi un link con spiegato in modo approndito questo argomento riguardo la verifica di validità dell'input ottenuto tramite cin.
grazie
In pratica mi serve poter fare un accurato controllo dell'input dell'utente specialmente se esso non corrisponde al tipo di variabile nel quale cin scrive il valore letto.. ad esempio:
#include <iostream>
#include <limits>
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
int input;
while (cout << "Enter a number: " && !(cin >> input))
{
cout << "\nInvalid input" <<endl;
cin.clear();
cin.ignore(std::numeric_limits < int >::max(), '\n');
}
cout <<"You entered " <<input;
}
Se inserisco:
343434 -> tutto.. OK
qwqwq -> me lo rileva come errato.. OK
we2332 -> me lo rileva come errato.. OK
322uuu -> me lo rileva corretto come "322".. SBAGLIATO!
io voglio che non accetti questo ultimo valore..
inoltre quando accetta quest'ultimo valore poi se uso cin successivamente fa casino e "impazzisce".
Potresti dirmi come fare in modo che quest'ultimo valore non venga considerato valido...
E specialmente potreste consigliarmi un link con spiegato in modo approndito questo argomento riguardo la verifica di validità dell'input ottenuto tramite cin.
grazie