Sdílet prostřednictvím


strstreambuf::strstreambuf

Vytvoří objekt typu 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
);

Parametry

  • _Allocfunc
    Funkce slouží k přidělení vyrovnávací paměti.

  • _Count
    Určuje délku vyrovnávací paměti odkazuje _Getptr.Pokud _Getptr není argument (první konstruktoru formuláře) navrhované rozdělení velikosti pro vyrovnávací paměť.

  • _Freefunc
    Použitá funkce uvolnit vyrovnávací paměti.

  • _Getptr
    Vyrovnávací paměť pro vstup.

  • _Putptr
    Vyrovnávací paměť pro výstup.

Poznámky

První konstruktor ukládá všechny ukazatele řízení vstupní vyrovnávací paměti, výstupní vyrovnávací paměť a přidělení strstreambuf ukazatel s hodnotou null.Nastaví režim uložené strstreambuf provádět řízené sekvence upravitelné a prodloužit.Také přijímá _Count jako navrhované počáteční přidělovanou velikost.

Druhý konstruktor se chová jako první, s výjimkou, že ukládá _Allocfunc jako ukazatel na funkci volat přidělení úložiště a _Freefunc jako ukazatel na funkci volat uvolnit úložiště.

Tři konstruktory:

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);

také chovat jako první, s výjimkou _Getptr označí objekt array jímán řízené sekvence.(Tedy nesmí být ukazatele null.) Počet prvků n pole se určí takto:

  • If (_Count > 0), then N is count.

  • If (_Count == 0), then N is strlen( (constchar *)_Getptr ).

  • If (_Count < 0), then N is INT_MAX.

Pokud _Putptr je nulový ukazatel funkce provedením stanoví pouze vstupní vyrovnávací paměti:

setg(_Getptr, _Getptr, _Getptr + N);

Jinak stanoví vstupní i výstupní vyrovnávací paměti spuštěním:

setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);

In this case, _Putptrmust be in the interval _Getptr, _Getptr + N.

Nakonec tři konstruktory:

strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);

všechny chovají stejně jako:

streambuf( (char *)_Getptr, _Count );

Kromě toho, že uložené režim neposkytuje řízené sekvence ani měnit ani prodloužit.

Požadavky

Záhlaví: <strstream>

Obor názvů: std

Viz také

Referenční dokumentace

strstreambuf Class

iostream programování

iostreams konvence