Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | io‎ | basic ios
 
 
 
 

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
Konstante Erklärung
goodbit kein Fehler
badbit irreparabler Stream-Fehler
failbit Ein-/Ausgabeoperation fehlgeschlagen (Formatierungs- oder Extraktionsfehler)
eofbit Die zugeordnete Eingabesequenz hat das Ende der Datei erreicht

[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.

#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) [bearbeiten]
gibt Zustandsflags zurück
(öffentliche Memberfunktion) [bearbeiten]