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, na kterou odkazuje _Getptr.Pokud _Getptr není argument (první konstruktoru form), navrhované rozdělení velikosti pro vyrovnávací paměť.

  • _Freefunc
    Použitá funkce volného vyrovnávací paměti.

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

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

Poznámky

První konstruktoru 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 aby řízené sekvenci upravitelné a prodloužit.Přijímá také _Count jako navrhované počáteční přidělovanou velikost.

Druhý konstruktor se chová jako první, s tím rozdílem, že ukládá _Allocfunc jako ukazatel funkce volání přidělení úložiště a _Freefunc jako ukazatel funkce volat Uvolněte ú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é se chovat jako první, s tím rozdílem, že _Getptr označuje objekt array, který je jímán řízené sekvenci. (Nesmí tedy být ukazatel s hodnotou null.) Počet prvků, N pole se určí takto:

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

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

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

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

setg(_Getptr, _Getptr, _Getptr + N);

V opačném případě se stanoví vstupní a 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 se chovají stejně jako:

streambuf( (char *)_Getptr, _Count );

Kromě toho, že uložené režimu umožňuje řízené sekvenci měnit ani prodloužit.

Požadavky

Záhlaví:<strstream>

Obor názvů: std

Viz také

Referenční dokumentace

strstreambuf – třída

iostream – programování

iostreams – konvence