std::basic_filebuf<CharT,Traits>:: underflow
|
protected
:
virtual int_type underflow ( ) |
||
Liest weitere Daten in den Eingabebereich.
Verhält sich wie die Basisklasse std :: basic_streambuf :: underflow , mit der Ausnahme, dass zum Lesen der Daten aus der zugeordneten Zeichensequenz (der Datei) in den Lesebereich zunächst die Bytes aus der Datei in einen temporären Puffer (der bei Bedarf entsprechend groß alloziert wird) gelesen werden, dann std :: codecvt :: in des eingestellten Locale verwendet wird, um die externe (typischerweise Multibyte-) Darstellung in die interne Form zu konvertieren, die dann zur Befüllung des Lesebereichs dient. Die Konvertierung kann übersprungen werden, wenn std :: codecvt :: always_noconv des Locale true zurückgibt.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
Traits :: to_int_type ( * gptr ( ) ) (das erste Zeichen der ausstehenden Sequenz) im Erfolgsfall, oder Traits :: eof ( ) im Fehlerfall.
Beispiel
#include <fstream> #include <iostream> struct mybuf : std::filebuf { int underflow() { std::cout << "Before underflow(): size of the get area is " << egptr()-eback() << " with " << egptr()-gptr() << " read positions available\n"; int rc = std::filebuf::underflow(); std::cout << "underflow() returns " << rc << ".\nAfter the call, " << "size of the get area is " << egptr()-eback() << " with " << egptr()-gptr() << " read positions available\n"; return rc; } }; int main() { mybuf buf; buf.open("test.txt", std::ios_base::in); std::istream stream(&buf); while (stream.get()) ; }
Mögliche Ausgabe:
Before underflow(): size of the get area is 0 with 0 read positions available underflow() returns 73. After the call, size of the get area is 110 with 110 read positions available Before underflow(): size of the get area is 110 with 0 read positions available underflow() returns -1. After the call, size of the get area is 0 with 0 read positions available
Siehe auch
|
[virtual]
|
liest Zeichen aus der zugehörigen Eingabesequenz in den Get-Bereich
(virtuelle geschützte Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
gibt das nächste in der Eingabesequenz verfügbare Zeichen zurück
(virtuelle geschützte Elementfunktion von
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
liest ein Zeichen aus der Eingabesequenz ohne den nächsten Zeiger zu bewegen
(virtuelle geschützte Elementfunktion von
std::strstreambuf
)
|
|
[virtual]
|
liest aus der zugehörigen Datei und bewegt den nächsten Zeiger im Get-Bereich
(virtuelle geschützte Elementfunktion) |
|
[virtual]
|
schreibt Zeichen aus dem Put-Bereich in die zugehörige Datei
(virtuelle geschützte Elementfunktion) |
|
liest ein Zeichen aus der Eingabesequenz ohne die Sequenz zu bewegen
(öffentliche Elementfunktion von
std::basic_streambuf<CharT,Traits>
)
|