Espacios de nombres
Variantes
Acciones

std::ws

De cppreference.com
< cpp‎ | io‎ | manip
 
 
 
Manipuladores de E/S
Formateo de punto flotante
Formateo de enteros
Formateo de booleanos
Control de ancho de campo y relleno
Otro formateo
Procesamiento de espacio en blanco
Vaciado de salida
Manipulación de indicadores de estado
E/S de tiempo y dinero
(C++11)
(C++11)
(C++11)
(C++11)
Manipulación entre comillas
(C++14)
 
Definido en el archivo de 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 FunciónDeEntradaSinFormato, 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 produzca alguna 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 eofbit ya está establecido en is antes de la llamada a ws, en cuyo caso la construcción del objeto centinela establecería failbit).
  • el siguiente carácter disponible c en la secuencia de entrada no es un espacio en blanco según lo determinado por std::isspace(c, is.getloc()). No se extraen los caracteres que no son espacios en blanco.

Este es un manipulador de E/S de solo entrada, que se puede llamar con una expresión como in >> std::ws para cualquier in del tipo std::basic_istream.

Contenido

[editar]Parámetros

is - Referencia al flujo de entrada.

[editar]Valor de retorno

is (referencia al flujo después de la extracción de espacios consecutivos).

[editar]Notas

Si eofbit se establece en la transmisión antes de la llamada, la construcción del objeto centinela establecerá failbit.

[editar]Ejemplo

#include <iomanip>#include <iostream>#include <istream>#include <sstream>#include <string>   int main(){for(constchar* str :{" #1 test", "\t #2 test", "#3 test"}){std::string line;std::getline(std::istringstream{str}, line);std::cout<<"getline devuelve:\t"<<std::quoted(line)<<'\n';   std::istringstream iss{str};std::getline(iss >> std::ws, line);std::cout<<"ws + getline devuelve:\t"<<std::quoted(line)<<'\n';}}

Salida:

getline devuelve: " #1 test" ws + getline devuelve: "#1 test" getline devuelve: " #2 test" ws + getline devuelve: "#2 test" getline devuelve: "#3 test" ws + getline devuelve: "#3 test"

[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 415 C++98 Llamar a std::ws podría no construir el objeto centinela
(no es coherente con otras funciones de entrada).
Es necesario construir el objeto centinela.

[editar]Véase también

Extrae y descarta caracteres hasta encontrar el carácter dado.
(función miembro pública de std::basic_istream)[editar]
close