std::strstreambuf:: pbackfail
From de.cppreference.net
<
cpp
|
io
|
strstreambuf
|
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
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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>
)
|