Namespaces
Variants

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

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

Diese geschützte virtuelle Funktion wird von den öffentlichen Funktionen basic_streambuf::sungetc und basic_streambuf::sputbackc aufgerufen (welche wiederum von basic_istream::unget und basic_istream::putback aufgerufen werden).

1) Der Aufrufer fordert, dass der Lesebereich um ein Zeichen zurückgesetzt wird ( pbackfail() wird ohne Argumente aufgerufen), in welchem Fall diese Funktion die Datei ab einem Byte früher neu einliest und basic_streambuf::gptr() dekrementiert, z.B. durch Aufruf von gbump ( - 1 ) .
2) Der Aufrufer versucht, ein anderes Zeichen zurückzulegen als das zuvor entnommene ( pbackfail() wird mit dem Zeichen aufgerufen, das zurückgelegt werden soll), in welchem Fall
a) Zuerst wird geprüft, ob eine Putback-Position vorhanden ist, und falls nicht, wird der Get-Bereich durch erneutes Lesen der Datei beginnend ein Byte früher gesichert.
a) Überprüft dann, welches Zeichen sich in der Putback-Position befindet. Wenn das dort gehaltene Zeichen bereits gleich c ist, wie durch Traits :: eq ( to_char_type ( c ) , gptr ( ) [ - 1 ] ) bestimmt, dann dekrementiert es einfach basic_streambuf::gptr() .
b) Andernfalls, wenn der Puffer seine eigene Lesebereich ändern darf, dekrementiert basic_streambuf::gptr() und schreibt c an die Stelle, auf die gptr() nach der Anpassung zeigt.

Diese Funktion modifiziert niemals die Datei, sondern nur den Lesebereich des In-Memory-Puffers.

Wenn die Datei nicht geöffnet ist ( is_open ( ) == false , gibt diese Funktion sofort Traits :: eof ( ) zurück.

Inhaltsverzeichnis

Parameter

c - das zurückzugebende Zeichen oder Traits::eof(), um anzugeben, dass ein Zurücksetzen des Lesebereichs angefordert wird

Rückgabewert

c bei Erfolg, außer wenn c gleich Traits :: eof ( ) war, in welchem Fall Traits :: not_eof ( c ) zurückgegeben wird.

Traits :: eof ( ) bei Fehler.

Beispiel

Siehe auch

[virtual]
setzt ein Zeichen zurück in die Eingabesequenz und modifiziert möglicherweise die Eingabesequenz
(virtuelle geschützte Elementfunktion von std::basic_streambuf<CharT,Traits> )
bewegt den nächsten Zeiger in der Eingabesequenz um eine Position zurück
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
setzt ein Zeichen zurück in die Eingabesequenz
(öffentliche Elementfunktion von std::basic_streambuf<CharT,Traits> )
extrahiert ein Zeichen zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )
setzt ein Zeichen in den Eingabestrom zurück
(öffentliche Elementfunktion von std::basic_istream<CharT,Traits> )