Namespaces
Variants

std::strstreambuf:: strstreambuf

From cppreference.net
(1)
explicit strstreambuf ( std:: streamsize alsize = 0 ) ;
(in C++98 veraltet)
(bis C++11)
strstreambuf ( ) : strstreambuf ( 0 ) { }
explicit strstreambuf ( std:: streamsize alsize ) ;
(seit C++11) (entfernt in C++26)
strstreambuf ( void * ( * palloc ) ( std:: size_t ) , void ( * pfree ) ( void * ) ) ;
(2) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( char * gnext, std:: streamsize n, char * pbeg = 0 ) ;
(3) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( signed char * gnext, std:: streamsize n, signed char * pbeg = 0 ) ;
(4) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( unsigned char * gnext, std:: streamsize n, unsigned char * pbeg = 0 ) ;
(5) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( const char * gnext, std:: streamsize n ) ;
(6) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( const signed char * gnext, std:: streamsize n ) ;
(7) (in C++98 veraltet)
(entfernt in C++26)
strstreambuf ( const unsigned char * gnext, std:: streamsize n ) ;
(8) (in C++98 veraltet)
(entfernt in C++26)
1) Konstruiert ein std::strstreambuf -Objekt: initialisiert die Basisklasse durch Aufruf des Standardkonstruktors von std::streambuf , initialisiert den Pufferzustand auf "dynamisch" (der Puffer wird bei Bedarf allokiert), initialisiert die allokierte Größe auf den bereitgestellten alsize , initialisiert die Allokations- und Deallokationsfunktionen auf null (verwendet new [ ] und delete [ ] ).
2) Konstruiert ein std::strstreambuf -Objekt: initialisiert die Basisklasse durch Aufruf des Standardkonstruktors von std::streambuf , initialisiert den Pufferzustand auf "dynamisch" (der Puffer wird bei Bedarf allokiert), initialisiert die allokierte Größe auf einen nicht spezifizierten Wert, initialisiert die Allokationsfunktion auf palloc und die Deallokationsfunktion auf pfree .
3-5) Konstruiert ein std::strstreambuf -Objekt in folgenden Schritten:
a) Initialisiert die Basisklasse durch Aufruf des Standardkonstruktors von std::streambuf .
b) Initialisiert den Pufferzustand als "konstant" (der Puffer ist ein benutzerbereitgestellter Puffer fester Größe).
c) Bestimmt die Anzahl der Elemente im benutzerdefinierten Array wie folgt: wenn n größer als Null ist, wird n verwendet. Wenn n Null ist, wird std:: strlen ( gnext ) ausgeführt, um die Puffergröße zu bestimmen. Wenn n negativ ist, wird INT_MAX verwendet.
d) Konfiguriert die std::basic_streambuf -Zeiger wie folgt: Wenn pbeg ein Nullzeiger ist, ruft setg ( gnext, gnext, gnext + N ) auf. Wenn pbeg kein Nullzeiger ist, führt setg ( gnext, gnext, pbeg ) und setp ( pbeg, pbeg + N ) aus, wobei N die Anzahl der Elemente im Array ist, wie zuvor bestimmt.
6-8) Gleich wie strstreambuf ( ( char * ) gnext, n ) , außer dass das "constant"-Bit in der Pufferstatus-Bitmaske gesetzt ist (Ausgabe an diesen Puffer ist nicht erlaubt).

Inhaltsverzeichnis

Parameter

alsize - die anfängliche Größe des dynamisch allokierten Puffers
palloc - Zeiger auf die benutzerdefinierte Allokierungsfunktion
pfree - Zeiger auf die benutzerdefinierte Freigabefunktion
gnext - Zeiger auf den Start des Lesebereichs im benutzerdefinierten Array
pbeg - Zeiger auf den Start des Schreibbereichs im benutzerdefinierten Array
n - die Anzahl der Bytes im Lesebereich (wenn pbeg null ist) oder im Schreibbereich (wenn pbeg nicht null ist) des benutzerdefinierten Arrays

Hinweise

Diese Konstruktoren werden typischerweise von den Konstruktoren von std:: strstream aufgerufen.

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
P0935R0 C++11 Standardkonstruktor war explicit implizit gemacht

Beispiel

#include <iostream>
#include <strstream>
int main()
{
    std::strstreambuf dyn; // dynamisch
    std::strstream dyn_s; // äquivalenter Stream
    dyn_s << 1.23 << std::ends;
    std::cout << dyn_s.str() << '\n';
    dyn_s.freeze(false);
    char buf[10];
    std::strstreambuf user(buf, 10, buf); // benutzerbereitgestellter Ausgabepuffer
    std::ostrstream user_s(buf, 10); // äquivalenter Stream
    user_s << 1.23 << std::ends;
    std::cout << buf << '\n';
    std::strstreambuf lit("1 2 3", 5); // konstant
    std::istrstream lit_s("1 2 3"); // äquivalenter Stream
    int i, j, k;
    lit_s >> i >> j >> k;
    std::cout << i << ' ' << j << ' ' << k << '\n';
}

Ausgabe:

1.23
1.23
1 2 3

Siehe auch

Konstruiert ein strstream -Objekt, optional mit Allokierung des Puffers
(öffentliche Elementfunktion von std::strstream )