std:: ws
|
Défini dans l'en-tête
<istream>
|
||
|
template
<
class
CharT,
class
Traits
>
std:: basic_istream < CharT, Traits > & ws ( std:: basic_istream < CharT, Traits > & is ) ; |
||
Ignore les espaces blancs de début dans un flux d'entrée.
Se comporte comme une UnformattedInputFunction , sauf que is. gcount ( ) n'est pas modifié. Après avoir construit et vérifié l'objet sentinelle, extrait les caractères du flux et les ignore jusqu'à ce que l'une des conditions suivantes se produise :
-
une condition de fin de fichier se produit dans la séquence d'entrée (auquel cas la fonction appelle
setstate
(
eofbit
)
mais ne définit pas
failbit; ceci ne s'applique pas si leeofbitest déjà défini sur is avant l'appel àws, auquel cas la construction de l'objet sentry définiraitfailbit).
- le prochain caractère disponible c dans la séquence d'entrée n'est pas un espace blanc tel que déterminé par std:: isspace ( c, is. getloc ( ) ) . Le caractère non-espace n'est pas extrait.
Ceci est un manipulateur d'E/S en entrée uniquement, il peut être appelé avec une expression telle que in >> std :: ws pour tout in de type std::basic_istream .
Table des matières |
Paramètres
| est | - | référence au flux d'entrée |
Valeur de retour
is (référence au flux après extraction des espaces consécutifs).
Notes
Si
eofbit
est défini sur le flux avant l'appel, la construction de l'objet sentry définira
failbit
.
Exemple
#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'; } }
Sortie :
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"
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 | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 415 | C++98 |
l'appel à
std::ws
pouvait ne pas construire l'objet
sentry (incohérent avec les autres fonctions d'entrée) |
requis de construire
l'objet sentry |
Voir aussi
|
extrait et ignore les caractères jusqu'à ce que le caractère spécifié soit trouvé
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|