Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++:UnformattedInputFunction

De cppreference.com
< cpp‎ | named req
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

[editar]Requisitos

Una FunciónDeEntradaSinFormato es una función de entrada de flujo que hace lo siguiente:

1) Construye un objeto de tipo basic_istream::sentry con duración de almacenamiento automática y con el argumento noskipws establecido a true, que realiza los siguiente:
  • Si están establecidos eofbit o badbit en el flujo de entrada, también establece failbit y, si las excepciones en failbit están habilitadas en la máscara de excepciones de este flujo de entrada ((exceptions()& failbit)!=0), lanza la excepción ios_base::failure.
  • Limpia el flujo de salida tie(), si corresponde.
2) Comprueba el estado del centinela (sentry) llamando a sentry::operator bool(), que es equivalente a basic_ios::good.
  • Si el operador devuelve false o el constructor de sentry lanza una excepción:
  • Establece el número de caracteres extraídos (gcount) en el flujo de entrada en cero.
  • Si se llamó a la función para escribir en un array de CharT, escribe CharT() (el carácter nulo) en la primera ubicación del array.
  • Si el operador devuelve true, realiza la entrada como si llamara a rdbuf()->sbumpc() o rdbuf()->sgetc().
  • Si se alcanza el final del flujo (la llamada a rdbuf()->sbumpc() o rdbuf()->sgetc() devuelve Traits::eof()), se establece eofbit. Si las excepciones en eofbit están habilitadas en la máscara de exccepciones de este flujo ((exceptions()& eofbit)!=0), lanza la excepción ios_base::failure.
  • Si se genera una excepción durante la entrada, se establece badbit en el flujo de entrada. Si las excepciones badbit están habilitadas en la máscara de excepciones de este flujo ((exceptions()& badbit)!=0), la excepción también se vuelve a generar.
  • Las excepciones lanzadas desde basic_ios::clear no se capturan ni se relanzan.
  • Si no se lanzó ninguna excepción durante la entrada, establece la cantidad de caracteres extraídos (gcount) en el flujo de entrada.
3) En cualquier caso, ya sea terminando por excepción o retornando, se llama al destructor del centinela antes de salir de esta función.

[editar]Biblioteca estándar

Las siguientes funciones de la biblioteca estándar son FunciónDeEntradaSinFormato.

[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 61 C++98 No estaba claro si lanzar un excepción debido a la configuración de
eofbit y/o failbit resultaba en la configuración de badbit.
Las excepciones lanzadas desde basic_ios::clear
no se capturan ni se vuelven a lanzar.
LWG 160 C++98 El proceso de determinar si la excepción capturada se vuelve
a generar menciona una función inexistente, exception().
Corregido a exceptions().
LWG 243 C++98 No se especificaba el comportamiento cuando sentry::operator bool()
devuelve false o el objeto centinela no se puede construir.
Se especifica.
close