operator>> (std::basic_istream)
|
Definido en el encabezado
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(1) | |
| (2) | ||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(hasta C++20) | |
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
basic_istream
<
CharT, Traits
>
&
|
(desde C++20) | |
|
template
<
class
Istream,
class
T
>
Istream
&&
|
(3) | (desde C++11) |
ch
. Si no hay ningún carácter disponible, establece
failbit
(además de
eofbit
que se establece según lo requerido para una
FormattedInputFunction
).
s
. La extracción se detiene si se cumple alguna de las siguientes condiciones:
- Se encuentra un carácter de espacio en blanco (determinado por el facet ctype<CharT> ). El carácter de espacio en blanco no se extrae.
|
(until C++20) |
|
(since C++20) |
- Ocurre el fin de archivo en la secuencia de entrada (esto también establece eofbit ).
Istream
es un tipo de clase derivado pública y unívocamente de
std::ios_base
.
Contenidos |
Notas
Extraer un solo carácter que es el último carácter del flujo no establece
eofbit
: esto es diferente de otras funciones de entrada formateadas, como extraer el último entero con
operator
>>
, pero este comportamiento coincide con el comportamiento de
std::scanf
con
"%c"
especificador de formato.
Parámetros
| st | - | flujo de entrada de donde extraer los datos |
| ch | - | referencia a un carácter para almacenar el carácter extraído |
| s | - | puntero a (until C++20) un arreglo de caracteres para almacenar los caracteres extraídos |
Valor de retorno
Ejemplo
#include <iomanip> #include <iostream> #include <sstream> int main() { std::string input = "n greetings"; std::istringstream stream(input); char c; const int MAX = 6; char cstr[MAX]; stream >> c >> std::setw(MAX) >> cstr; std::cout << "c = " << c << '\n' << "cstr = " << cstr << '\n'; double f; std::istringstream("1.23") >> f; // rvalue stream extraction std::cout << "f = " << f << '\n'; }
Salida:
c = n cstr = greet f = 1.23
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 13 | C++98 | la definición de n mencionaba un nombre inexistente eos | reemplazado con CharT ( ) |
| LWG 68 | C++98 | no se almacenaban caracteres nulos al final de la salida para la sobrecarga (2) | almacena un carácter nulo |
| LWG 1203 | C++98 | la sobrecarga para flujo de rvalue devolvía referencia lvalue a la clase base |
devuelve referencia rvalue
a la clase derivada |
| LWG 2328 | C++98 | la sobrecarga para flujo de rvalue requería que otro argumento fuera lvalue | modificado para aceptar rvalue |
| LWG 2534 | C++98 | la sobrecarga para flujo de rvalue no estaba restringida | restringida |
Véase también
|
extrae datos formateados
(función miembro pública) |