std:: ws
|
Definido en el encabezado
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
std:: basic_istream < CharT, Traits > & ws ( std:: basic_istream < CharT, Traits > & is ) ; |
||
Descarta los espacios en blanco iniciales de un flujo de entrada.
Se comporta como una UnformattedInputFunction , excepto que is. gcount ( ) no se modifica. Después de construir y verificar el objeto centinela, extrae caracteres del flujo y los descarta hasta que se cumpla cualquiera de las siguientes condiciones:
-
se produce una condición de fin de archivo en la secuencia de entrada (en cuyo caso la función llama a
setstate
(
eofbit
)
pero no establece
failbit; esto no se aplica si eleofbitya está establecido en is antes de la llamada aws, en cuyo caso la construcción del objeto sentry estableceríafailbit).
- el siguiente carácter disponible c en la secuencia de entrada no es un espacio en blanco determinado por std:: isspace ( c, is. getloc ( ) ) . El carácter que no es espacio en blanco no se extrae.
Este es un manipulador de E/S de solo entrada, puede ser llamado con una expresión como in >> std :: ws para cualquier in de tipo std::basic_istream .
Contenidos |
Parámetros
| es | - | referencia al flujo de entrada |
Valor de retorno
is (referencia al flujo después de la extracción de espacios en blanco consecutivos).
Notas
Si
eofbit
está establecido en el flujo antes de la llamada, la construcción del objeto sentry establecerá
failbit
.
Ejemplo
#include <iomanip> #include <iostream> #include <istream> #include <sstream> #include <string> int main() { for (const char* str : {" #1 test", "\t #2 test", "#3 test"}) { std::string line; std::getline(std::istringstream{str}, line); std::cout << "getline returns:\t" << std::quoted(line) << '\n'; std::istringstream iss{str}; std::getline(iss >> std::ws, line); std::cout << "ws + getline returns:\t" << std::quoted(line) << '\n'; } }
Salida:
getline returns: " #1 test" ws + getline returns: "#1 test" getline returns: " #2 test" ws + getline returns: "#2 test" getline returns: "#3 test" ws + getline returns: "#3 test"
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 415 | C++98 |
llamar a
std::ws
podría no construir el objeto
centinela (inconsistente con otras funciones de entrada) |
se requiere construir
el objeto centinela |
Véase también
|
extrae y descarta caracteres hasta encontrar el carácter especificado
(función miembro pública de
std::basic_istream<CharT,Traits>
)
|