Namespaces
Variants

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

From cppreference.net

Establece los indicadores de estado de error del flujo asignándoles el valor de state . Por defecto, asigna std::ios_base::goodbit lo cual tiene el efecto de limpiar todos los indicadores de estado de error.

Si rdbuf() es un puntero nulo (es decir, no hay un búfer de flujo asociado), entonces state | std:: ios_base :: badbit es asignado.

Contenidos

Parámetros

state - nueva configuración de indicadores de estado de error. Puede ser una combinación de las siguientes constantes:
Constante Explicación
goodbit sin error
badbit error de flujo irrecuperable
failbit operación de entrada/salida fallida (error de formato o extracción)
eofbit la secuencia de entrada asociada ha alcanzado el fin de archivo

Valor de retorno

(ninguno)

Excepciones

Si el nuevo estado de error incluye un bit que también está incluido en la exceptions() máscara, lanza una excepción de tipo failure .

Ejemplo

clear() sin argumentos puede utilizarse para desactivar el failbit después de una entrada inesperada; para std:: cin . putback ( c ) consulte 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';
}

Salida:

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

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 412 C++98 se lanzaría una excepción si el estado de error actual
incluye un bit que también está incluido en la exceptions() máscara
verifica el nuevo
estado de error en su lugar

Véase también

establece flags de estado
(función miembro pública)
devuelve flags de estado
(función miembro pública)