ostreambuf_iterator Sınıfı

Sınıf şablonu ostreambuf_iterator, ayıklama işleciyle>> çıkış akışına ardışık karakter öğeleri yazan bir çıkış yineleyici nesnesi açıklar. s ostreambuf_iterator, çıkış akışına eklenen nesnenin türünde genel bir tür yerine karakterlere sahip ostream_iterator Sınıfı'ndan farklıdır.

Sözdizimi

template <class CharType = char class Traits = char_traits <CharType>>

Parametreler

CharType
ostreambuf_iterator için karakter türünü temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değerdir char.

Özellik
ostreambuf_iterator için karakter türünü temsil eden tür. Bu bağımsız değişken isteğe bağlıdır ve varsayılan değer CharType'tırchar_traits<>.

Açıklamalar

Ostreambuf_iterator sınıfının, bir çıkış yineleyici için gereksinimleri karşılaması gerekir. Algoritmalar bir kullanılarak ostreambuf_iteratorçıkış akışlarına doğrudan yazılabilir. Sınıf, karakterlerin biçimindeki ham (biçimlendirilmemiş) G/Ç akışına erişim sağlayarak düşük düzey bir akış ve üst düzey akış yineleyicilerle ilişkili arabelleğe alma işlemini ve karakter çevirilerini atlama özelliği sağlar.

Oluşturucular

Oluşturucu Açıklama
ostreambuf_iterator Çıkış akışına karakter yazmak için başlatılan bir ostreambuf_iterator oluşturur.

Tür tanımları

Tür adı Açıklama
char_type öğesinin karakter türünü sağlayan bir tür ostreambuf_iterator.
ostream_type akış türü için sağlayan bir tür ostream_iterator.
streambuf_type akış türü için sağlayan bir tür ostreambuf_iterator.
traits_type karakterinin karakter özellikleri türünü sağlayan bir ostream_iteratortür.

Üye işlevleri

Üye işlevi Açıklama
başarısız Çıkış akışı arabelleğine ekleme hatasını sınar.

İşleçler

Operator Açıklama
operatör* Çıkış yineleyici ifadesini * i = xuygulamak için kullanılan başvuru kaldırma işleci.
operator++ İşlem çağrılmadan önce ele alındığı nesneye bir ostreambuf_iterator döndüren işlevsiz bir artış işleci.
operator= İşleç, ilişkili akış ara belleğine bir karakter ekler.

Gereksinimler

Üst bilgi:<yineleyici>

Ad alanı: std

ostreambuf_iterator::char_type

öğesinin karakter türünü sağlayan bir tür ostreambuf_iterator.

typedef CharType char_type;

Açıklamalar

türü, şablon parametresi CharTypeiçin bir eş anlamlıdır.

Örnek

// ostreambuf_iterator_char_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
*charOutBuf = 'O';
   charOutBuf++;
*charOutBuf = 'U';
   charOutBuf++;
*charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/

ostreambuf_iterator::failed

Çıkış akışı arabelleğine ekleme hatasını sınar.

bool failed() const throw();

Dönüş Değeri

true çıkış akışı arabelleğine daha önce ekleme başarısız olduysa; aksi takdirde false.

Açıklamalar

Üye işlevi, üyenin önceki kullanımlarında subf_-sputc> çağrısının döndürdüğü eof değerini döndürürtrue.operator=

Örnek

// ostreambuf_iterator_failed.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

*charOut = 'a';
   charOut ++;
*charOut  = 'b';
   charOut ++;
*charOut = 'c';
   cout << " are characters output individually." << endl;

   bool b1 = charOut.failed ( );
   if (b1)
       cout << "At least one insertion failed." << endl;
   else
       cout << "No insertions failed." << endl;
}
/* Output:
abc are characters output individually.
No insertions failed.
*/

ostreambuf_iterator::operator*

Çıkış yineleyici ifadesini * i = x uygulamak için kullanılan işlev dışı başvuru kaldırma işleci.

ostreambuf_iterator<CharType, Traits>& operator*();

Dönüş Değeri

ostreambuf yineleyici nesnesi.

Açıklamalar

Bu işleç yalnızca çıkış yineleyici ifadesinde * i = x çıkış karakterlerini akış arabelleğine dönüştürür. Bir ostreambuf yineleyicisine uygulandığında yineleyiciyi döndürür; *yineleyici yineleyici döndürür,

Örnek

// ostreambuf_iterator_op_deref.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
   charOutBuf++;   // no effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::operator++

İşlem çağrılmadan önce ele alınan karaktere bir akış yineleyicisi döndüren işlevsiz bir artış işleci.

ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);

Dönüş Değeri

Başlangıçta ele alınan karaktere veya CharType, Traits'e> dönüştürülebilen uygulama tanımlı bir nesneye<ostreambuf_iterator başvuru.

Açıklamalar

işleci, çıkış yineleyici ifadesini * i = x uygulamak için kullanılır.

Örnek

// ostreambuf_iterator_op_incr.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::operator=

İşleç, ilişkili akış ara belleğine bir karakter ekler.

ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);

Parametreler

_Char
Akış arabelleğine eklenecek karakter.

Dönüş Değeri

Akış arabelleğine eklenen karaktere başvuru.

Açıklamalar

Çıkış yineleyicisi ifadesini * bir çıkış akışına yazmak için i = x uygulamak için kullanılan atama işleci.

Örnek

// ostreambuf_iterator_op_assign.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   // with new line delimiter
   ostreambuf_iterator<char> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output stream
   cout << "Elements written to output stream:" << endl;
*charOutBuf = 'O';
   charOutBuf++;      // No effect on iterator position
*charOutBuf = 'U';
*charOutBuf = 'T';
}
/* Output:
Elements written to output stream:
OUT
*/

ostreambuf_iterator::ostreambuf_iterator

Çıkış akışına karakter yazmak için başlatılan bir ostreambuf_iterator oluşturur.

ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();

Parametreler

strbuf
Çıkış stream-buffer işaretçisini başlatmak için kullanılan çıkış streambuf nesnesi.

Ostr
Çıkış stream-buffer işaretçisini başlatmak için kullanılan çıkış akışı nesnesi.

Açıklamalar

İlk oluşturucu, çıkış stream-buffer işaretçisini strbuf ile başlatır.

İkinci oluşturucu ile çıkış stream-buffer işaretçisini Ostrbaşlatır. rdbuf. Depolanan işaretçi null bir işaretçi olmamalıdır.

Örnek

// ostreambuf_iteratorOstreambuf_iterator.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // ostreambuf_iterator for stream cout
   ostreambuf_iterator<char> charOut ( cout );

*charOut = 'O';
   charOut ++;
*charOut  = 'U';
   charOut ++;
*charOut = 'T';
   cout << " are characters output individually." << endl;

   ostreambuf_iterator<char> strOut ( cout );
   string str = "These characters are being written to the output stream.\n ";
   copy ( str.begin ( ), str. end ( ), strOut );
}
/* Output:
OUT are characters output individually.
These characters are being written to the output stream.
*/

ostreambuf_iterator::ostream_type

akış türü için sağlayan bir tür ostream_iterator.

typedef basicOstream<CharType, Traits> ostream_type;

Açıklamalar

Türü CharType, Traits için basicOstream<bir eş anlamlıdır>

Örnek

bildirme ve kullanma ostream_typeörneği için bkz. ostreambuf_iterator.

ostreambuf_iterator::streambuf_type

akış türü için sağlayan bir tür ostreambuf_iterator.

typedef basic_streambuf<CharType, Traits> streambuf_type;

Açıklamalar

türü, karakter türüne basic_streambuf<özel olduğunda olan streambuf G/Ç arabellekleri için bir akış sınıfı olan CharType, Traits> için bir eş anlamlıdır.char

Örnek

bildirme ve kullanma streambuf_typeörneği için bkz. ostreambuf_iterator.

ostreambuf_iterator::traits_type

karakterinin karakter özellikleri türünü sağlayan bir ostream_iteratortür.

typedef Traits traits_type;

Açıklamalar

türü, şablon parametresi Traitsiçin bir eş anlamlıdır.

Örnek

// ostreambuf_iterator_traits_type.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   typedef ostreambuf_iterator<char>::char_type CHT1;
   typedef ostreambuf_iterator<char>::traits_type CHTR1;

   // ostreambuf_iterator for stream cout
   // with new line delimiter:
    ostreambuf_iterator< CHT1, CHTR1> charOutBuf ( cout );

   // Standard iterator interface for writing
   // elements to the output streambuf:
   cout << "The characters written to the output stream\n"
        << " by charOutBuf are: ";
*charOutBuf = 'O';
   charOutBuf++;
*charOutBuf = 'U';
   charOutBuf++;
*charOutBuf = 'T';
   charOutBuf++;
   cout << "." << endl;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/

Ayrıca bkz.

<Yineleyici>
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu