Aracılığıyla paylaş


basic_stringbuf Sınıfı

karakter özellikleri, bir dizi nesnesinde depolanan bir öğe dizisine ve sınıfı Elemtarafından belirlenen türündeki Tröğelerin iletimini denetleyen bir akış arabelleği açıklar.

Sözdizimi

template <class Elem, class Tr = char_traits<Elem>,
    class Alloc = allocator<Elem>>
class basic_stringbuf : public basic_streambuf<Elem, Tr>

Parametreler

Ayırma
Ayırıcı sınıf.

Elem
Dizenin temel öğesinin türü.

Tr
Dizenin temel öğesinde özelleşmiş karakter özellikleri.

Açıklamalar

Nesne, dizideki değişiklikleri barındırmak için gerektiği şekilde ayrılır, genişletilir ve serbesttir.

sınıfı basic_stringbuf<Elem nesnesi, TrAlloc>oluşturucusundan openmode bağımsız değişkeninin ios_base::bir kopyasını mod stringbuf olarak depolar:

  • Sıfır mode & ios_base::in değilse, giriş arabelleği erişilebilir. Daha fazla bilgi için bkz . basic_streambuf Sınıfı.

  • Sıfır mode & ios_base::out değilse çıkış arabelleğine erişilebilir.

Oluşturucular

Oluşturucu Açıklama
basic_stringbuf türünde basic_stringbufbir nesnesi oluşturur.

Tür tanımları

Tür adı Açıklama
allocator_type Tür, Şablon parametresi Alloc için bir eş anlamlıdır.
char_type Bir tür adını Elem şablon parametresiyle ilişkilendirir.
int_type Bu türün kapsamı içindebasic_filebuf, Tr kapsamındaki aynı adın türüne eşdeğer hale getirir.
off_type Bu türün kapsamı içindebasic_filebuf, Tr kapsamındaki aynı adın türüne eşdeğer hale getirir.
pos_type Bu türün kapsamı içindebasic_filebuf, Tr kapsamındaki aynı adın türüne eşdeğer hale getirir.
traits_type Tür adını Tr şablonu parametresiyle ilişkilendirir.

Üye işlevleri

Üye işlevi Açıklama
taşma Tam arabelleğe yeni bir karakter eklendiğinde çağrılabilen korumalı, sanal bir işlev.
pbackfail Korumalı sanal üye işlevi bir öğeyi giriş arabelleğine geri yerleştirmeye çalışır, ardından bunu geçerli öğe yapar (sonraki işaretçi tarafından işaret edilir).
ara Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır.
seekpos Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır.
str Yazma konumunu değiştirmeden dize arabelleğindeki metni ayarlar veya alır.
swap
yetersiz akış Giriş akışından geçerli öğeyi ayıklamak için korunan sanal üye işlevi.

Gereksinimler

Üst bilgi:<sstream>

Ad alanı: std

basic_stringbuf::allocator_type

Tür, Şablon parametresi Alloc için bir eş anlamlıdır.

typedef Alloc allocator_type;

basic_stringbuf::basic_stringbuf

türünde basic_stringbufbir nesnesi oluşturur.

basic_stringbuf(
    ios_base::openmode _Mode = ios_base::in | ios_base::out);

basic_stringbuf(
    const basic_string<Elem, Tr, Alloc>& str,
    ios_base::openmode _Mode = ios_base::in | ios_base::out);

Parametreler

_Mod
ios_base::openmode içindeki numaralandırmalardan biri.

str
basic_string türünde bir nesne.

Açıklamalar

İlk oluşturucu, giriş arabelleği ve çıkış arabelleği denetleen tüm işaretçilerde null bir işaretçi depolar. Daha fazla bilgi için basic_streambuf Sınıfının Açıklamalar bölümüne bakın. Ayrıca _Mode stringbuf modu olarak depolar. Daha fazla bilgi için basic_stringbuf Sınıfının Açıklamalar bölümüne bakın.

İkinci oluşturucu dize nesnesi str tarafından denetlenen dizinin bir kopyasını ayırır. _Mode & ios_base::in Sıfır değilse, giriş arabelleği dizinin başlangıcında okumaya başlayacak şekilde ayarlar. Sıfır _Mode & ios_base::out değilse, çıkış arabelleği dizinin başlangıcında yazmaya başlayacak şekilde ayarlar. Ayrıca _Mode stringbuf modu olarak depolar. Daha fazla bilgi için basic_stringbuf Sınıfının Açıklamalar bölümüne bakın.

basic_stringbuf::char_type

Bir tür adını Elem şablon parametresiyle ilişkilendirir.

typedef Elem char_type;

basic_stringbuf::int_type

Bu türü basic_filebuf kapsamı içinde kapsamdaki aynı adın Tr türüne eşdeğer hale getirir.

typedef typename traits_type::int_type int_type;

basic_stringbuf::off_type

Bu türü basic_filebuf kapsamı içinde kapsamdaki aynı adın Tr türüne eşdeğer hale getirir.

typedef typename traits_type::off_type off_type;

basic_stringbuf::overflow

Tam arabelleğe yeni bir karakter eklendiğinde çağrılabilen korumalı bir sanal işlev.

virtual int_type overflow(int_type _Meta = traits_type::eof());

Parametreler

_Meta
Arabelleğe eklenecek karakter veya traits_type::eof.

Dönüş Değeri

İşlev başarılı olamazsa döndürür traits_type::eof. Aksi takdirde, traits_type::not_eof(_ Meta) döndürür.

Açıklamalar

_Meta traits_type::eof ile eşit değilse, korumalı sanal üye işlevi çıkış arabelleğine traits_type::to_char_type(_Meta) öğesini eklemeyi dener. Bunu çeşitli yollarla yapabilir:

  • Bir yazma konumu varsa, öğeyi yazma konumuna depolayabilir ve çıkış arabelleği için sonraki işaretçiyi artırabilir.

  • Çıkış arabelleği için yeni veya ek depolama alanı ayırarak yazma konumunu kullanılabilir hale getirir. Çıkış arabelleğinin bu şekilde genişletilmesi, ilişkili tüm giriş arabelleklerini de genişletir.

basic_stringbuf::p backfail

Korumalı sanal üye işlevi, bir öğeyi giriş arabelleğine geri yerleştirmeye çalışır ve sonra bunu geçerli öğe yapar (sonraki işaretçi tarafından işaret edilir).

virtual int_type pbackfail(int_type _Meta = traits_type::eof());

Parametreler

_Meta
Arabelleğe eklenecek karakter veya traits_type::eof.

Dönüş Değeri

İşlev başarılı olamazsa döndürür traits_type::eof. Aksi takdirde, traits_type::not_eof(_ Meta) döndürür.

Açıklamalar

_Meta traits_type::eof değerine eşitse, geri itme öğesi geçerli öğeden önceki akışta zaten olan öğedir. Aksi takdirde, bu öğe bayt traits_type::to_char_type(_ Meta) ile = değiştirilir. işlevi bir öğeyi çeşitli yollarla geri koyabilir:

  • Bir geri koyma konumu varsa ve orada depolanan öğe bayt değerine eşitse, giriş arabelleği için sonraki işaretçiyi azaltabilir.

  • Bir geri koyma konumu varsa ve stringbuf modu dizinin değiştirilmesine izin verirse ( mod &ios_base::out sıfır olmayan), baytları geri koyma konumuna depolayabilir ve giriş arabelleği için sonraki işaretçiyi azaltabilir.

basic_stringbuf::p os_type

Bu türü basic_filebuf kapsamı içinde kapsamdaki aynı adın Tr türüne eşdeğer hale getirir.

typedef typename traits_type::pos_type pos_type;

basic_stringbuf::seekoff

Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır.

virtual pos_type seekoff(
    off_type _Off,
    ios_base::seekdir _Way,
    ios_base::openmode _Mode = ios_base::in | ios_base::out);

Parametreler

_Kapalı
_Way göre aranacak konum. Daha fazla bilgi için bkz . basic_stringbuf::off_type.

_Yol
Uzaklık işlemleri için başlangıç noktası. Olası değerler için bkz . ios_base::seekdir .

_Mod
İşaretçi konumunun modunu belirtir. Varsayılan ayar, okuma ve yazma konumlarını değiştirmenize izin vermektir. Daha fazla bilgi için bkz . ios_base::openmode.

Dönüş Değeri

Yeni konumu veya geçersiz bir akış konumunu döndürür.

Açıklamalar

sınıfının basic_stringbuf<Elem, Tr, Alloc>bir nesnesi için bir akış konumu yalnızca bir akış uzaklığından oluşur. Uzaklık sıfır, denetlenen sıranın ilk öğesini belirtir.

Yeni konum aşağıdaki gibi belirlenir:

  • ise _Way == ios_base::beg, yeni konum akışın başlangıcı ve _Off.

  • ise _Way == ios_base::cur, yeni konum geçerli akış konumu artı _Off.

  • ise _Way == ios_base::end, yeni konum akışın sonuna ek olarak _Off.

Sıfır _Mode & ios_base::in değilse, işlev giriş arabelleğindeki bir sonraki konumu okuyacak şekilde değiştirir. Sıfır _Mode & ios_base::out değilse, işlev çıkış arabelleğine yazmak için sonraki konumu değiştirir. Bir akışın etkilenmesi için arabelleğinin mevcut olması gerekir. Bir konumlandırma işleminin başarılı olması için, sonuçta elde edilen akış konumunun denetlenen dizi içinde yer alması gerekir. İşlev her iki akış konumunu da etkiliyorsa, _Way veya ios_base::beg olmalıdır ios_base::end ve her iki akış da aynı öğede konumlandırılır. Aksi takdirde (veya hiçbir konum etkilenmediyse), konumlandırma işlemi başarısız olur.

İşlev, akış konumlarından birini veya her ikisini de değiştirmeyi başarırsa, sonuçta elde edilen akış konumunu döndürür. Aksi takdirde başarısız olur ve geçersiz bir akış konumu döndürür.

basic_stringbuf::seekpos

Korumalı sanal üye işlevi, denetlenen akışlar için geçerli konumları değiştirmeye çalışır.

virtual pos_type seekpos(pos_type _Sp, ios_base::openmode _Mode = ios_base::in | ios_base::out);

Parametreler

_Sp
Aranacak konum.

_Mod
İşaretçi konumunun modunu belirtir. Varsayılan ayar, okuma ve yazma konumlarını değiştirmenize izin vermektir.

Dönüş Değeri

İşlev, akış konumlarından birini veya her ikisini de değiştirmeyi başarırsa, sonuçta elde edilen akış konumunu döndürür. Aksi takdirde başarısız olur ve geçersiz bir akış konumu döndürür. Akış konumunun geçersiz olup olmadığını belirlemek için dönüş değerini ile pos_type(off_type(-1))karşılaştırın.

Açıklamalar

Sınıf basic_stringbuf<Elem, Tr, Alloc>nesnesi için bir akış konumu yalnızca bir akış uzaklığından oluşur. Uzaklık sıfır, denetlenen sıranın ilk öğesini belirtir. Yeni konum_ Sp tarafından belirlenir.

&ios_base::in modu sıfır değilse, işlev giriş arabelleğindeki bir sonraki konumu okuyacak şekilde değiştirir. &ios_base::out modu sıfır değilse, işlev çıkış arabelleğine yazmak için sonraki konumu değiştirir. Bir akışın etkilenmesi için arabelleğinin mevcut olması gerekir. Bir konumlandırma işleminin başarılı olması için, sonuçta elde edilen akış konumunun denetlenen dizi içinde yer alması gerekir. Aksi takdirde (veya hiçbir konum etkilenmediyse), konumlandırma işlemi başarısız olur.

basic_stringbuf::str

Yazma konumunu değiştirmeden dize arabelleğindeki metni ayarlar veya alır.

basic_string<Elem, Tr, Alloc> str() const;
void str(
    const basic_string<Elem, Tr, Alloc>& _Newstr);

Parametreler

_Newstr
Yeni dize.

Dönüş Değeri

Elem, Tr, Alloc<sınıf basic_string>, denetimli dizisi tarafından *thisdenetlenen dizinin bir kopyası olan bir nesnesi döndürür.

Açıklamalar

İlk üye işlevi, denetimli<dizisi tarafından denetlenen sıranın bir kopyası olan Elem, Alloc basic_string >*thissınıfının bir nesnesini döndürür. Kopyalanan sıra, depolanan stringbuf moduna bağlıdır:

  • &ios_base::out modu sıfır dışıysa pbase

  • &ios_base::in modu sıfır dışıysa eback

  • Aksi takdirde, kopyalanan sıra boş olur.

İkinci üye işlevi şu anda tarafından *thisdenetlenen tüm dizileri serbest bırakıyor. Ardından _Newstr tarafından denetlenen dizinin bir kopyasını ayırır. &ios_base::in modu sıfır değilse, giriş arabelleği dizinin başında okumaya başlayacak şekilde ayarlar. &ios_base::out modu sıfır değilse, çıkış arabelleği dizinin başında yazmaya başlayacak şekilde ayarlar.

Örnek

// basic_stringbuf_str.cpp
// compile with: /EHsc
#include <iostream>
#include <sstream>

using namespace std;

int main( )
{
   basic_string<char> i( "test" );
   stringstream ss;

   ss.rdbuf( )->str( i );
   cout << ss.str( ) << endl;

   ss << "z";
   cout << ss.str( ) << endl;

   ss.rdbuf( )->str( "be" );
   cout << ss.str( ) << endl;
}
test
zest
be

basic_stringbuf::traits_type

Tür adını Tr şablonu parametresiyle ilişkilendirir.

typedef Tr traits_type;

Açıklamalar

Tür, Şablon parametresi Tr için bir eş anlamlıdır.

basic_stringbuf::underflow

Korumalı, giriş akışından geçerli öğeyi ayıklamak için sanal işlev.

virtual int_type underflow();

Dönüş Değeri

İşlev başarılı olamazsa traits_type::eof döndürür. Aksi takdirde, giriş akışında dönüştürülen geçerli öğeyi döndürür.

Açıklamalar

Korumalı sanal üye işlevi, giriş arabelleğinden geçerli öğeyi byte ayıklamaya, geçerli akış konumunu ilerletmeye ve öğeyi traits_type::to_int_type( bayt) olarak döndürmeye çalışır. Bunu tek bir yolla yapabilir: Okuma konumu varsa, okuma konumunda depolanan öğe olarak alır byte ve giriş arabelleği için sonraki işaretçiyi ilerletir.

basic_streambuf::swap

Bu dize arabelleğinin içeriğini başka bir dize arabelleğiyle değiştirir.

void basic_stringbuf<T>::swap(basic_stringbuf& other)

Parametreler

Diğer
İçeriği bu basic_stringbuf ile değiştirilecek olan basic_stringbuf.

basic_stringbuf::operator=

İşlecin sağ tarafındaki basic_stringbuf içeriğini sol taraftaki basic_stringbuf atar.

basic_stringbuf& basic_stringbuf:: operator=(const basic_stringbuf& other)

Parametreler

Diğer
Yerel ayar özellikleri de dahil olmak üzere içeriği işlecin sol tarafındaki stringbuf'a atanacak olan bir basic_stringbuf.

Ayrıca bkz.

C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream Programlaması
iostreams Kuralları