Namespaces
Variants

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

From cppreference.net
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> )