std::basic_istream<CharT,Traits>:: ignore
|
basic_istream
&
ignore
(
std::
streamsize
count
=
1
, int_type delim
=
Traits
::
eof
(
)
)
;
|
||
Extrae y descarta caracteres del flujo de entrada hasta e incluyendo delim .
ignore
se comporta como una
UnformattedInputFunction
. Después de construir y verificar el objeto sentry, extrae caracteres del flujo y los descarta hasta que ocurra cualquiera de las siguientes condiciones:
- count caracteres fueron extraídos. Esta prueba está deshabilitada en el caso especial cuando count es igual a std:: numeric_limits < std:: streamsize > :: max ( ) .
- se produce una condición de fin de archivo en la secuencia de entrada, en cuyo caso la función llama a setstate ( eofbit ) .
- el siguiente carácter disponible c en la secuencia de entrada es delim , determinado por Traits :: eq_int_type ( Traits :: to_int_type ( c ) , delim ) . El carácter delimitador se extrae y descarta. Esta prueba está deshabilitada si delim es Traits :: eof ( ) .
Contenidos |
Parámetros
| count | - | número de caracteres a extraer |
| delim | - | carácter delimitador para detener la extracción. También se extrae |
Valor de retorno
* this
Excepciones
Si una operación interna lanza una excepción, es capturada y se establece
badbit
. Si
exceptions()
está configurado para
badbit
, la excepción es relanzada.
Ejemplo
El siguiente ejemplo utiliza
ignore
para omitir entradas no numéricas:
#include <iostream> #include <limits> #include <sstream> constexpr auto max_size = std::numeric_limits<std::streamsize>::max(); int main() { std::istringstream input("1\n" "some non-numeric input\n" "2\n"); for (;;) { int n; input >> n; if (input.eof() || input.bad()) break; else if (input.fail()) { input.clear(); // unset failbit input.ignore(max_size, '\n'); // skip bad input } else std::cout << n << '\n'; } }
Salida:
1 2
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 172 | C++98 | el tipo de count estaba mal especificado como int | corregido a std::streamsize |
Véase también
|
extrae caracteres
(función miembro pública) |
|
|
extrae caracteres hasta encontrar el carácter especificado
(función miembro pública) |