Ist es möglich, das Fehlerbit istream manuell in C ++ 11 zu setzen?

8

Ich habe diese Klasse gemacht:

%Vor%

Ich habe mir die Dokumentation angesehen (nicht gut), aber ich konnte keinen geeigneten Weg finden, das Fehlerbit zu setzen. Der Grund, warum ich mich interessiere, wäre, dass ich in der Lage wäre, while(std::cin>>obj)/*do stuff*/; wie man mit einem int machen kann. Aber wenn ich das jetzt mache, würde es immer eine Endlosschleife geben, wenn ein Fehler auftritt. -_- Setzt das Fail-Bit möglich oder muss ich mit diesem Problem anders arbeiten?

    
haelmic 28.12.2016, 03:33
quelle

2 Antworten

11

Sie können das Failbit eines Eingabestreams mit der Funktion basic_ios :: setstate festlegen:

%Vor%     
user1593881 28.12.2016, 03:37
quelle
6

Sie können setstate verwenden. Beachten Sie, dass Sie es nach dem Aufruf von Putback einfügen sollten, andernfalls werden die Zeichen nicht putback ed erfolgreich, weil der Stream in einem Fehlerzustand war. d. h.

%Vor%     
songyuanyao 28.12.2016 03:45
quelle

Tags und Links