Quando inserisco un valore corretto (un numero intero) è buono. Ma quando entro in un personaggio, ottengo un ciclo infinito. Ho esaminato ogni lato di questo codice e non sono riuscito a trovare alcun problema. Perché sta succedendo? Sto usando g ++ 4.7 su Windows.Perché questo codice mi dà un ciclo infinito?
#include <iostream>
#include <limits>
int main()
{
int n;
while (!(std::cin >> n))
{
std::cout << "Please try again.\n";
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cin.clear();
}
}
ingresso: x
uscita:
c'è un carattere non stampabile come CR che arriva insieme all'input quando si digita o si cade un personaggio? –
Basta usare 'scanf'. Modo più facile e più chiaro. –
@Joker_vD Ma pensavo che fosse C++ ... –