Namespaces
Variants

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

From cppreference.net
protected :
virtual int_type overflow ( int_type ch = Traits :: eof ( ) ) ;
*Hinweis: Da der Text innerhalb der Tags C++-Code enthält und gemäß den Anweisungen nicht übersetzt werden darf, bleibt der gesamte Inhalt unverändert. Die HTML-Struktur und Formatierung wurden beibehalten.*

Schreibt einige Daten aus dem Put-Bereich in die zugehörige Zeichensequenz (in die Datei).

Verhält sich wie die Basisklassenversion std::basic_streambuf::overflow() , mit der Ausnahme, dass das Verhalten des "Konsumierens von Zeichen" wie folgt definiert ist:

1) Zuerst wird std::codecvt::out des eingestellten Locale verwendet, um die Zeichen in eine externe (möglicherweise Multibyte-) Darstellung zu konvertieren, die wie folgt in einem temporären Puffer gespeichert wird: ( XSIZE ist eine nicht näher spezifizierte Puffergröße)
const std::codecvt<CharT, char, typename Traits::state_type>& a_codecvt =
    std::use_facet<std::codecvt<CharT, char, typename Traits::state_type>>(getloc());
typename Traits::state_type state;
CharT* end;
char xbuf[XSIZE];
char* xbuf_end;
std::codecvt_base::result r =
    a_codecvt.out(state, pbase(), pptr(), end, xbuf, xbuf + XSIZE, xbuf_end);
2) Schreibt dann alle vollständig konvertierten Zeichen aus dem Puffer in die Datei. Formal führt die folgenden Schritte basierend auf dem Wert von r durch:
r Operation
std:: codecvt_base :: ok Gibt Zeichen in [ xbuf , xbuf_end ) in die Datei aus und scheitert falls die Ausgabe fehlschlägt. An diesem Punkt, wenn pbase ( ) ! = pptr ( ) und pbase ( ) == end beide true sind (was bedeutet, dass xbuf nicht einmal für ein externes Zeichen ausreicht), dann erhöhe XSIZE und wiederhole von Beginn an.
std:: codecvt_base :: partial Gibt die konvertierten externen Zeichen in [ xbuf , xbuf_end ) in die Datei aus und wiederhole mit den verbleibenden nicht konvertierten internen Zeichen in [ end , pptr ( ) ) . Falls die Ausgabe fehlschlägt, scheitere (ohne Wiederholung).
std:: codecvt_base :: noconv Gibt Zeichen in [ pbase ( ) , pptr ( ) ) in die Datei aus.
std:: codecvt_base :: error Scheitert.
Wenn die zugehörige Datei nicht geöffnet ist ( is_open() gibt false zurück), schlägt die Ausgabe immer fehl.
3) Stellt einen beobachtbaren Kontrollpunkt her.
(since C++26)

Inhaltsverzeichnis

Parameter

ch - das Zeichen, das im Put-Bereich gespeichert werden soll

Rückgabewert

Traits :: not_eof ( ch ) um Erfolg anzuzeigen oder Traits :: eof ( ) um Fehler anzuzeigen.

Hinweise

Wenn a_codecvt. always_noconv ( ) true zurückgibt, kann der Aufruf von a_codecvt. out ( ) übersprungen werden.

Beispiel

Siehe auch

[virtual]
Schreibt Zeichen in die zugehörige Ausgabesequenz aus dem Put-Bereich
(virtuelle geschützte Memberfunktion von std::basic_streambuf<CharT,Traits> )
[virtual]
Liest aus der zugehörigen Datei
(virtuelle geschützte Memberfunktion)