operator<<,>> (std::basic_string)
|
Défini dans l'en-tête
<string>
|
||
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
std::
basic_ostream
<
CharT, Traits
>
&
|
(1) | |
|
template
<
class
CharT,
class
Traits,
class
Allocator
>
std::
basic_istream
<
CharT, Traits
>
&
|
(2) | |
Insère ensuite chaque caractère de la séquence résultante seq (le contenu de str plus le remplissage) dans le flux de sortie os comme en appelant os. rdbuf ( ) - > sputn ( seq, n ) , où n est std:: max ( os. width ( ) , str. size ( ) ) . Enfin, appelle os. width ( 0 ) pour annuler les effets de std::setw , s'il y en a.
|
Équivalent à return os << std:: basic_string_view < CharT, Traits > ( str ) ; . |
(depuis C++17) |
-
Ncaractères sont lus, oùNest is. width ( ) si is. width ( ) > 0 , sinonNest str. max_size ( ) , - la condition de fin de fichier se produit dans le flux is , ou
- std:: isspace ( c, is. getloc ( ) ) est true pour le caractère suivant c dans is (ce caractère d'espacement reste dans le flux d'entrée).
Si aucun caractère n'est extrait, std::ios::failbit est défini sur is , ce qui peut lever std::ios_base::failure .
Enfin, appelle is. width ( 0 ) pour annuler les effets de std::setw , le cas échéant.
Table des matières |
Exceptions
Paramètres
| os | - | un flux de sortie de caractères |
| is | - | un flux d'entrée de caractères |
| str | - | la chaîne à insérer ou extraire |
Valeur de retour
Exemple
#include <iostream> #include <sstream> #include <string> int main() { std::string greeting = "Hello, whirled!"; std::istringstream iss(greeting); std::string hello_comma, whirled, word; iss >> hello_comma; iss >> whirled; std::cout << greeting << '\n' << hello_comma << '\n' << whirled << '\n'; // Reset the stream iss.clear(); iss.seekg(0); while (iss >> word) std::cout << '+' << word << '\n'; }
Sortie :
Hello, whirled! Hello, whirled! +Hello, +whirled!
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 25 | C++98 | n était le plus petit entre os. width ( ) et str. size ( ) | n est le plus grand des deux |
| LWG 90 | C++98 |
std::
isspace
(
c, getloc
(
)
)
était utilisé pour vérifier
les espaces, mais
getloc
n'est pas déclaré dans
<string>
|
remplacé
getloc
(
)
par is. getloc ( ) |
| LWG 91 | C++98 |
operator>>
ne se comportait pas
comme une FormattedInputFunction |
se comporte comme une
FormattedInputFunction |
| LWG 211 | C++98 |
operator>>
ne positionnait pas
failbit
si aucun caractère n'était extrait
|
positionne
failbit
|
| LWG 435 | C++98 |
les caractères étaient insérés par
os.
rdbuf
(
)
-
>
sputn
(
str.
data
(
)
, n
)
,
et la résolution de LWG issue 25 rendait le comportement indéfini si os. width ( ) est plus grand que str. size ( ) |
détermine d'abord le remplissage
et insère la séquence de caractères complétée à la place |
| LWG 586 | C++98 |
operator<<
ne se comportait pas
comme une FormattedOutputFunction |
se comporte comme une
FormattedOutputFunction |
Voir aussi
|
(C++17)
|
effectue la sortie de flux sur les vues de chaîne
(modèle de fonction) |