strstreambuf::strstreambuf

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

Siehe auch

Referenz

strstreambuf Class

Programmierung der iostream-Headerdatei

iostreams Konventionen