Namespaces
Variants

std::strstreambuf:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = EOF ) ;
(veraltet in C++98)
(entfernt in C++26)

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 Get-Bereich um ein Zeichen zurückgesetzt wird ( pbackfail() wird ohne Argumente oder mit EOF als Argument aufgerufen)
a) Zuerst wird geprüft, ob eine Putback-Position vorhanden ist, und falls wirklich keine vorhanden ist, schlägt es fehl ( strstreambuf verfügt über keine externe Zeichenquelle zum erneuten Einlesen).
b) Falls der Aufrufer falsch lag und die Putback-Position tatsächlich verfügbar ist, wird einfach 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, schlägt es fehl.
b) Prüft dann, welches Zeichen sich in der Putback-Position befindet. Wenn das dort gehaltene Zeichen bereits gleich ( char ) c ist, dann dekrementiert es einfach basic_streambuf::gptr() .
c) Andernfalls, wenn der Puffer nicht modifizierbar ist (dieser strstreambuf wurde mit einem String-Literal oder einem anderen const Array konstruiert), schlägt fehl.
d) Andernfalls dekrementiert basic_streambuf::gptr() und schreibt c an die adressierte Stelle gptr ( ) nach Anpassung.

Inhaltsverzeichnis

Parameter

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

Rückgabewert

c bei Erfolg, außer wenn c gleich EOF war, in welchem Fall ein nicht spezifizierter Wert außer EOF zurückgegeben wird.

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> )