Bei mir funktioniert es sowohl unter Linux, als auch unter Windows. Wobei man v. a. für Windows noch auf eof() prüfen könnte, damit auch bei einem CTRL+Z das Programm richtig terminiert. Genauso macht es evtl. auch keinen Sinn, bei std::cin.bad() noch eine Recovery-Aktion zu starten. Tut mir leid, dass es buggt^^ Bin offen für Verbesserungsvorschläge (evtl. erst einen char einlesen und dann entscheiden, bei Ziffer, Punkt oder Minus unget() und dann double einlesen?). Sollte nur eine Anregung sein vom Prinzip her. LG