operator>> (std::basic_istream)
|
Défini dans l'en-tête
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(1) | |
| (2) | ||
|
template
<
class
CharT,
class
Traits
>
basic_istream
<
CharT, Traits
>
&
|
(jusqu'au C++20) | |
|
template
<
class
CharT,
class
Traits,
std::
size_t
N
>
basic_istream
<
CharT, Traits
>
&
|
(depuis C++20) | |
|
template
<
class
Istream,
class
T
>
Istream
&&
|
(3) | (depuis C++11) |
ch
. Si aucun caractère n'est disponible, positionne le
failbit
(en plus du
eofbit
qui est positionné comme requis pour une
FormattedInputFunction
).
s
. L'extraction s'arrête si l'une des conditions suivantes est remplie :
- Un caractère d'espacement (déterminé par la facette ctype<CharT> ) est trouvé. Le caractère d'espacement n'est pas extrait.
|
(jusqu'à C++20) |
|
(depuis C++20) |
- La fin de fichier se produit dans la séquence d'entrée (ce qui définit également eofbit ).
Istream
est un type classe publiquement et sans ambiguïté dérivé de
std::ios_base
.
Table des matières |
Notes
L'extraction d'un seul caractère qui est le dernier caractère du flux ne définit pas
eofbit
: ceci diffère des autres fonctions d'entrée formatées, telles que l'extraction du dernier entier avec
operator
>>
, mais ce comportement correspond au comportement de
std::scanf
avec
"%c"
comme spécificateur de format.
Paramètres
| st | - | flux d'entrée depuis lequel extraire les données |
| ch | - | référence vers un caractère pour stocker le caractère extrait |
| s | - | pointeur vers (jusqu'à C++20) un tableau de caractères pour stocker les caractères extraits |
Valeur de retour
Exemple
#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'; }
Sortie :
c = n cstr = greet f = 1.23
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 13 | C++98 | la définition de n mentionnait un nom inexistant eos | remplacé par CharT ( ) |
| LWG 68 | C++98 | aucun caractère nul n'était stocké à la fin de la sortie pour la surcharge (2) | stocke un caractère nul |
| LWG 1203 | C++98 | la surcharge pour le flux rvalue retournait une référence lvalue vers la classe de base |
retourne une référence rvalue
vers la classe dérivée |
| LWG 2328 | C++98 | la surcharge pour le flux rvalue nécessitait qu'un autre argument soit une lvalue | modifiée pour accepter les rvalue |
| LWG 2534 | C++98 | la surcharge pour le flux rvalue n'était pas contrainte | contrainte |
Voir aussi
|
extrait des données formatées
(fonction membre publique) |