std::basic_istream<CharT,Traits>:: putback
|
basic_istream
&
putback
(
char_type ch
)
;
|
||
Replace le caractère ch dans le flux d'entrée de sorte que le prochain caractère extrait sera ch .
Efface d'abord
eofbit
, puis se comporte comme une
UnformattedInputFunction
. Après avoir construit et vérifié l'objet sentinelle, si
rdbuf()
n'est pas nul, appelle
rdbuf
(
)
-
>
sputbackc
(
ch
)
, qui appelle
rdbuf
(
)
-
>
pbackfail
(
ch
)
si
ch
n'est pas égal au caractère précédemment extrait.
Si
rdbuf()
est nul ou si
rdbuf
-
>
sputbackc
(
ch
)
retourne
Traits
::
eof
(
)
, appelle
setstate
(
badbit
)
.
Dans tous les cas, initialise le compteur
gcount()
à zéro.
Table des matières |
Paramètres
| ch | - | caractère à placer dans le flux d'entrée |
Valeur de retour
* this
Exceptions
Si une opération interne lève une exception, elle est capturée et
badbit
est défini. Si
exceptions()
est défini pour
badbit
, l'exception est relancée.
Exemple
Montre la différence entre les versions modifiante et non-modifiante de
putback()
.
#include <iostream> #include <sstream> int main() { std::stringstream s1("Hello, world"); // flux d'E/S s1.get(); if (s1.putback('Y')) // modifie le tampon std::cout << s1.rdbuf() << '\n'; else std::cout << "putback failed\n"; std::cout << "--\n"; std::istringstream s2("Hello, world"); // flux en entrée uniquement s2.get(); if (s2.putback('Y')) // ne peut pas modifier un tampon en entrée seule std::cout << s2.rdbuf() << '\n'; else std::cout << "putback failed\n"; s2.clear(); std::cout << "--\n"; if (s2.putback('H')) // putback non modifiant std::cout << s2.rdbuf() << '\n'; else std::cout << "putback failed\n"; }
Sortie :
Yello, world -- putback failed -- Hello, world
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 2243 | C++98 |
sputbackc()
était appelé sans argument
|
appelé avec ch |
Voir aussi
|
replace un caractère dans la séquence d'entrée
(fonction membre publique de
std::basic_streambuf<CharT,Traits>
)
|
|
|
annule l'extraction d'un caractère
(fonction membre publique) |
|
|
lit le caractère suivant sans l'extraire
(fonction membre publique) |