Udostępnij za pośrednictwem


strstreambuf::strstreambuf

Tworzy obiekt 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
    Funkcja używana przydzielić buforu pamięci.

  • _Count
    Określa długość buforu wskazywanej przez _Getptr.Jeśli _Getptr nie jest to argument (formularz Konstruktor pierwszego), rozmiar sugerowane alokacji buforów.

  • _Freefunc
    Funkcja pozwala zwolnić buforu pamięci.

  • _Getptr
    Bufor używany do wprowadzania danych.

  • _Putptr
    Bufor używany do produkcji.

Uwagi

Pierwszy konstruktora przechowuje wskaźnik null w wszystkie wskaźniki kontrolowanie buforu wejściowego, bufor wyjściowy i strstreambuf alokacji.Go Ustawia tryb przechowywane strstreambuf Aby modyfikować i rozszerzalne kontrolowanych sekwencji.Również akceptuje _Count jako sugerowana początkowy rozmiar alokacji.

Drugi konstruktor zachowuje się jak pierwszy, chyba że przechowuje on _Allocfunc jako wskaźnik do funkcji do wywołania przydzielić składowania i _Freefunc jako wskaźnik do funkcji do wywołania, aby zwolnić magazynu.

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

zachowują się jak pierwszy, z wyjątkiem _Getptr wyznacza obiekt array, używane do przechowywania sekwencji kontrolowane.(W związku z tym nie może być null wskaźnik.) Liczba elementów n w tablicy określa się następująco:

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

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

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

Jeśli _Putptr jest wskaźnik null, funkcja ustanawia tylko bufor wejściowy przez wykonanie:

setg(_Getptr, _Getptr, _Getptr + N);

W przeciwnym razie ustanawia buforów wejścia i wyjścia, wykonując:

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

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

Wreszcie trzy konstruktory:

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

wszystkie działają tak samo, jak:

streambuf( (char *)_Getptr, _Count );

z wyjątkiem trybu przechowywane czyni sekwencji kontrolowanych, rozszerzalne ani modyfikowane.

Wymagania

Nagłówek: <strstream>

Obszar nazw: std

Zobacz też

Informacje

strstreambuf Class

iostream Programowanie

iostreams Konwencji