Namespaces
Variants

std::basic_filebuf<CharT,Traits>:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) )

Cette fonction virtuelle protégée est appelée par les fonctions publiques basic_streambuf::sungetc et basic_streambuf::sputbackc (qui, à leur tour, sont appelées par basic_istream::unget et basic_istream::putback ).

1) L'appelant demande que la zone de lecture soit reculée d'un caractère ( pbackfail() est appelé sans arguments), auquel cas cette fonction relit le fichier en commençant un octet plus tôt et décrémente basic_streambuf::gptr() , par exemple en appelant gbump ( - 1 ) .
2) L'appelant tente de remettre un caractère différent de celui récupéré précédemment ( pbackfail() est appelé avec le caractère qui doit être remis), auquel cas
a) Premièrement, vérifie s'il y a une position de remise, et s'il n'y en a pas, recule la zone de lecture en relisant le fichier à partir d'un octet plus tôt.
a) Vérifie ensuite quel caractère se trouve dans la position de remise. Si le caractère qui s'y trouve est déjà égal à c , comme déterminé par Traits :: eq ( to_char_type ( c ) , gptr ( ) [ - 1 ] ) , alors décrémente simplement basic_streambuf::gptr() .
b) Sinon, si le tampon est autorisé à modifier sa propre zone de lecture, décrémente basic_streambuf::gptr() et écrit c à l'emplacement pointé par gptr() après ajustement.

Cette fonction ne modifie jamais le fichier, seulement la zone de lecture du tampon en mémoire.

Si le fichier n'est pas ouvert ( is_open ( ) == false , cette fonction retourne Traits :: eof ( ) immédiatement.

Table des matières

Paramètres

c - le caractère à remettre, ou Traits::eof() pour indiquer que le recul de la zone de lecture est demandé

Valeur de retour

c en cas de succès sauf si c était Traits :: eof ( ) , auquel cas Traits :: not_eof ( c ) est retourné.

Traits :: eof ( ) en cas d'échec.

Exemple

Voir aussi

[virtual]
place un caractère dans la séquence d'entrée, en modifiant éventuellement la séquence d'entrée
(fonction membre protégée virtuelle de std::basic_streambuf<CharT,Traits> )
recule le pointeur suivant dans la séquence d'entrée d'une position
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
replace un caractère dans la séquence d'entrée
(fonction membre publique de std::basic_streambuf<CharT,Traits> )
dés-extrait un caractère
(fonction membre publique de std::basic_istream<CharT,Traits> )
place un caractère dans le flux d'entrée
(fonction membre publique de std::basic_istream<CharT,Traits> )