Namespaces
Variants

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

From cppreference.net

Définit les indicateurs d'état d'erreur du flux en leur assignant la valeur de state . Par défaut, assigne std::ios_base::goodbit ce qui a pour effet d'effacer tous les indicateurs d'état d'erreur.

Si rdbuf() est un pointeur nul (c'est-à-dire qu'il n'y a pas de tampon de flux associé), alors state | std:: ios_base :: badbit est assigné.

Table des matières

Paramètres

state - nouveau paramètre des indicateurs d'état d'erreur. Il peut être une combinaison des constantes suivantes :
Constante Explication
goodbit aucune erreur
badbit erreur de flux irrécupérable
failbit échec de l'opération d'entrée/sortie (erreur de formatage ou d'extraction)
eofbit la séquence d'entrée associée a atteint la fin du fichier

Valeur de retour

(aucun)

Exceptions

Si le nouvel état d'erreur inclut un bit qui est également inclus dans le masque exceptions() , lance une exception de type failure .

Exemple

clear() sans arguments peut être utilisé pour désactiver le failbit après une entrée inattendue ; pour std:: cin . putback ( c ) voir 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';
}

Sortie :

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

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement tel que publié Comportement correct
LWG 412 C++98 une exception serait levée si l'état d'erreur actuel
inclut un bit qui est également inclus dans le masque exceptions()
vérifie le nouvel
état d'erreur à la place

Voir aussi

définit les indicateurs d'état
(fonction membre publique)
retourne les indicateurs d'état
(fonction membre publique)