std::basic_ios<CharT,Traits>::clear
Von cppreference.com
| void clear( std::ios_base::iostate state = std::ios_base::goodbit ); |
||
Setzt die Fehlerstatus-Flags des Streams, indem ihnen der Wert von state zugewiesen wird. Standardmäßig wird std::ios_base::goodbit zugewiesen, was alle Fehlerstatus-Flags löscht.
Wenn rdbuf() ein Nullzeiger ist (d.h. kein zugeordneter Stream-Puffer vorhanden ist), dann wird state | std::ios_base::badbit zugewiesen.
Inhalt |
[edit] Parameter
| state | - | neue Einstellung der Fehlerstatus-Flags. Es kann eine Kombination der folgenden Konstanten sein
|
[edit] Rückgabewert
(keine)
[edit] Ausnahmen
Wenn der neue Fehlerstatus ein Bit enthält, das auch in der Maske exceptions() enthalten ist, wird eine Ausnahme vom Typ failure ausgelöst.
[edit] Beispiel
clear() ohne Argumente kann verwendet werden, um das failbit nach unerwarteter Eingabe zu unsetzen; für std::cin.putback(c) siehe ungetc.
Führen Sie diesen Code aus
#include <iostream> #include <string> int main() { for (char c : {'\n', '4', '1', '.', '3', '\n', 'Z', 'Y', 'X'}) std::cin.putback(c); // emulate user's input (not portable: see ungetc Notes) double n; while (std::cout << "Please, enter a number: " && !(std::cin >> n)) { std::cin.clear(); std::string line; std::getline(std::cin, line); std::cout << line << "\nI am sorry, but '" << line << "' is not a number\n"; } std::cout << n << "\nThank you for entering the number " << n << '\n'; }
Ausgabe
Please, enter a number: XYZ I am sorry, but 'XYZ' is not a number Please, enter a number: 3.14 Thank you for entering the number 3.14
[edit] Defect reports
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 412 | C++98 | eine Ausnahme würde ausgelöst werden, wenn der aktuelle Fehlerstatus ein Bit enthält, das auch in der Maske exceptions() enthalten ist |
prüft den neuen Fehlerstatus stattdessen |
[edit] Siehe auch
| setzt Zustandsflags (öffentliche Memberfunktion) | |
| gibt Zustandsflags zurück (öffentliche Memberfunktion) |