Namespaces
Variants

std::basic_ios<CharT,Traits>:: clear

From cppreference.net

Setzt die Stream-Fehlstatusflags, indem ihnen der Wert von state zugewiesen wird. Standardmäßig wird std::ios_base::goodbit zugewiesen, was zur Folge hat, dass alle Fehlstatusflags gelöscht werden.

Wenn rdbuf() ein Nullzeiger ist (d.h. kein assoziierter Streampuffer vorhanden ist), dann wird state | std:: ios_base :: badbit zugewiesen.

Inhaltsverzeichnis

Parameter

state - neue Einstellung der Fehlerstatus-Flags. Es kann eine Kombination der folgenden Konstanten sein:
Konstante Erklärung
goodbit kein Fehler
badbit nicht behebbarer Stream-Fehler
failbit Eingabe-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit zugehörige Eingabesequenz hat das Dateiende erreicht

Rückgabewert

(keine)

Exceptions

Wenn der neue Fehlerzustand ein Bit enthält, das auch in der exceptions() -Maske enthalten ist, wird eine Ausnahme vom Typ failure geworfen.

Beispiel

clear() ohne Argumente kann verwendet werden, um das failbit nach unerwarteter Eingabe zurückzusetzen; für std:: cin . putback ( c ) siehe ungetc .

#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

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 412 C++98 eine Exception würde ausgelöst, wenn der aktuelle Fehlerzustand
ein Bit enthält, das auch im exceptions() Mask enthalten ist
prüft stattdessen den neuen
Fehlerzustand

Siehe auch

setzt Zustandsflags
(öffentliche Elementfunktion)
gibt Zustandsflags zurück
(öffentliche Elementfunktion)