Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erstellt ein Objekt vom Typ strstreambuf.
explicit strstreambuf(
streamsize _Count = 0
);
strstreambuf(
void ( *_Allocfunc )( size_t ),
void ( *_Freefunc )( void * )
);
strstreambuf(
char *_Getptr,
streamsize _Count,
char *_Putptr = 0
);
strstreambuf(
signed char *_Getptr,
streamsize _Count,
signed char *_Putptr = 0
);
strstreambuf(
unsigned char *_Getptr,
streamsize _Count,
unsigned char *_Putptr = 0
);
strstreambuf(
const char *_Getptr,
streamsize _Count
);
strstreambuf(
const signed char *_Getptr,
streamsize _Count
);
strstreambuf(
const unsigned char *_Getptr,
streamsize _Count
);
Parameter
_Allocfunc
Die Funktion verwendet, um Buffer zuzuordnen._Count
Bestimmt die Länge des Puffers, der auf durch _Getptr gezeigt wird.Wenn _Getptr kein Argument (first Konstruktorformular) ist, eine vorgeschlagene Zuweisungsgröße für die Puffer._Freefunc
Die Funktion verwendet, um Buffer freizugeben._Getptr
Ein Puffer für die Eingabe verwendet._Putptr
Ein Puffer verwendet für die Ausgabe.
Hinweise
Der erste Konstruktor speichert einen NULL-Zeiger in allen Zeigern, die den Eingabepuffer, den Ausgabepuffer und strstreambuf Zuordnung steuern.Es legt den gespeicherten strstreambuf Modus fest, um die gesteuerte Sequenz änderbar und ausdehnbar auszuführen.Sie akzeptiert auch _Count wie eine vorgeschlagene anfängliche Zuweisungsgröße.
Der zweite Konstruktor verhält sich wie der erste, außer dass speichert _Allocfunc als der Zeiger auf die Funktion, um aufzurufen, um Speicher und _Freefunc als der Zeiger auf die Funktion zum Aufruf zu, um diesen Speicher freizugeben.
Die drei Konstruktoren:
strstreambuf(char *_Getptr, streamsize count,
char *putptr = 0);
strstreambuf(signed char *_Getptr, streamsize count,
signed char *putptr = 0);
strstreambuf(unsigned char *_Getptr, streamsize count,
unsigned char *putptr = 0);
Sie auch verhalten sich wie das erste, außer dass _Getptr legt das Objekt fest, das verwendet wird, um die gesteuerte Sequenz enthält.(Daher, darf kein NULL-Zeiger sein.) Die Anzahl der Elemente im Array N wird bestimmt, wie folgt:
Wenn _Count > (0), dann Ncount ist.
Wenn == (_Count 0), ist Nstrlen(constchar (*)_Getptr ).
Wenn (_Count < 0), dann ist N gleich INT_MAX.
Wenn _Putptr ein NULL-Zeiger ist, richtet die Funktion nur einen Eingabepuffer ein, indem sie ausgeführt wird:
setg(_Getptr, _Getptr, _Getptr + N);
Andernfalls wird sie eingegeben und Ausgabepuffer ein, indem sie ausführen:
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
In diesem Fall muss _Putptr im Intervall [_Getptr, _Getptr + N] sein.
Schließlich die drei Konstruktoren:
strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);
alle verhalten sich identisch:
streambuf( (char *)_Getptr, _Count );
außer dass der gespeicherte Modus macht die gesteuerte Sequenz weder noch änderbar ausdehnbar.
Anforderungen
Header: <strstream>
Namespace: std