std::basic_ios<CharT,Traits>::clear
void clear(std::ios_base::iostate state =std::ios_base::goodbit); | ||
Establece los indicadores de estado de error de flujo asignándoles el valor state. Por defecto, asigna std::ios_base::goodbit, que tiene el efecto de borrar todos los indicadores de estado de error.
Si rdbuf() es un puntero nulo (es decir, no hay un búfer de flujo asociado), se asigna state |std::ios_base::badbit.
Contenido |
[editar]Parámetros
state | - | La nueva configuración de indicadores de estado de error. Puede ser una combinación de las siguientes constantes:
|
[editar]Valor de retorno
(Ninguno)
[editar]Excepciones
Si el nuevo estado de error incluye un bit que también está incluido en la máscara exceptions(), se lanza una excepción de tipo failure.
[editar]Ejemplo
clear()
sin argumentos puede usarse para desestablecer erl bit failbit
después de una captura de datos no esperada; para std::cin.putback(c) see ungetc
.
#include <iostream>#include <string> int main(){for(char c :{'\n', '4', '1', '.', '3', '\n', 'Z', 'Y', 'X'})std::cin.putback(c);// emular la captura del usuario (no es portátil: véanse las notas de ungetc) double n;while(std::cout<<"Por favor, introduzca un número: "&&!(std::cin>> n)){std::cin.clear();std::string line;std::getline(std::cin, line);std::cout<< line <<"\nLo siento, pero '"<< line <<"' no es un número\n";}std::cout<< n <<"\nGracias por introducir el número "<< n <<'\n';}
Salida:
Por favor, introduzca un número: XYZ Lo siento, pero 'XYZ' no es un número Por favor, introduzca un número: 3.14 Gracias por introducir el número 3.14
[editar]Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 412 | C++98 | Se lanzaría una excepción si el estado de error actual incluía un bit que también está incluido en la máscara exceptions(). | En su lugar, verifica el nuevo estado de error. |
[editar]Véase también
Establece los indicadores de estado. (función miembro pública) | |
Devuelve los indicadores de estado. (función miembro pública) |