Nowość w C++. Problemy z poprawnie zapętlaniem podczas obsługi błędów. Próbuję sprawdzić, czy dane wejściowe użytkownika są liczbą całkowitą i są dodatnie.C++ Sprawdzanie liczby całkowitej.
do{
cout << "Please enter an integer.";
cin >> n;
if (cin.good())
{
if (n < 0) {cout << "Negative.";}
else {cout << "Positive.";}
}
else
{
cout << "Not an integer.";
cin.clear();
cin.ignore();
}
}while (!cin.good() || n < 0);
cout << "\ndone.";
Po wpisaniu liczby niecałkowitej, pętla ulega złamaniu. Czuję, że nie rozumiem nieodłącznego użycia cin.clear()
i cin.ignore()
i statusu cin
podczas tej pętli. Jeśli usuniemy cin.ignore()
, pętla stanie się nieskończona. Dlaczego to? Co mogę zrobić, aby przekształcić go w elegancko funkcjonującą pętlę? Dziękuję Ci.
pomocą debuggera. –