Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
while (! (std::cin >> x)) {
char c;
if (std::cin.bad()) {
// fataler Eingabefehler: Programmabbruch
std::cerr << "fataler Fehler bei Bruch-Eingabe" << std::endl;
std::exit(EXIT_FAILURE);
}
if (std::cin.eof()) {
// End-Of-File: Programmabbruch
std::cerr << "EOF bei Bruch-Eingabe" << std::endl;
std::exit(EXIT_FAILURE);
}
/* nicht fataler Fehler:
* - Failbit zurücksetzen
* - alles bis zum Zeilenende auslesen und
* nochmal probieren (Schleife!)
*/
std::cin.clear();
while (std::cin.get(c) && c != '\n') {
}
std::cerr << "Fehler bei Bruch-Eingabe, probier es nochmal: "
<< std::endl;
}