Witam :)
Siedzę nad prościutkim zadaniem i jestem w kropce.
Wyjaśnij dlaczego poniższy kod wpada w nieskończoną pętlę, gdy wprowadzony
zostanie niepoprawny znak, np. „x”.
#include <iostream>
int main()
{
std::cout << "Podaj kilka liczb, rozdzielając je spacjami
"
"(wpisz -1 aby zakończyć): ";
int i = 0;
while (i != -1) {
std::cin >> i;
std::cout << "Wpisano " << i << '\n';
}
}
Rozumiem, że pętla idzie w nieskończoność, bo otrzymała znak, który jest charem, a nie intem, na który czeka. Wypadałoby więć w warunku pętli zastrzec, że program ma z niej wyjść, nie tylko po otrzymaniu -1, a także czegoś, co jest innym typem jak int. Ma ktoś pomysł w jaki sposób zapisać taki warunek?