Aracılığıyla paylaş


basic_ostream Sınıfı

Bu sınıf şablonu, karakter özellikleri traits_type olarak da bilinen sınıfı Trtarafından belirlenen ve char_type olarak da bilinen türünde öğeler Elemve kodlanmış nesnelerin bir akış arabelleğine eklenmesini denetleyen bir nesneyi açıklar.

Sözdizimi

template <class Elem, class Tr = char_traits<Elem>>
class basic_ostream : virtual public basic_ios<Elem, Tr>

Parametreler

Elem
Bir char_type.

Tr
karakteri traits_type.

Açıklamalar

İşleci<< aşırı yükleyen üye işlevlerin çoğu biçimlendirilmiş çıkış işlevleridir. Deseni izler:

iostate state = goodbit;
const sentry ok(*this);

if (ok)
{try
{<convert and insert elements
    accumulate flags in state> }
    catch (...)
{try
{setstate(badbit);

}
    catch (...)
{}
    if ((exceptions()& badbit) != 0)
    throw; }}
width(0);
// Except for operator<<(Elem)
setstate(state);

return (*this);

Diğer iki üye işlevi biçimlendirilmemiş çıkış işlevleridir. Deseni izler:

iostate state = goodbit;
const sentry ok(*this);

if (!ok)
    state |= badbit;
else
{try
{<obtain and insert elements
    accumulate flags in state> }
    catch (...)
{try
{setstate(badbit);

}
    catch (...)
{}
    if ((exceptions()& badbit) != 0)
    throw; }}
setstate(state);

return (*this);

Her iki işlev grubu da öğe eklerken bir hatayla karşılaşırsa setstate(badbit) çağırır.

Elem basic_istream, Tr sınıfının bir nesnesi elem<, tr>> basic_ios< sınıfının yalnızca sanal bir ortak temel nesnesini depolar.

Örnek

Çıkış akışları hakkında daha fazla bilgi edinmek için basic_ofstream Sınıfı örneğine bakın.

Oluşturucular

Oluşturucu Açıklama
basic_ostream Bir basic_ostream nesne oluşturur.

Üye işlevleri

Üye işlevi Açıklama
Flush Arabelleği temizler.
koymak Bir karakteri akışa yerleştirir.
arama Çıkış akışındaki konumu sıfırlar.
nöbetçi İç içe geçmiş sınıf, bildirimi biçimlendirilmiş çıkış işlevlerini ve biçimlendirilmemiş çıkış işlevlerini yapılandırılmış bir nesneyi açıklar.
değiş tokuş etmek Sağlanan basic_ostream nesnenin değerleri için bu basic_ostream nesnenin değerlerini değiştirir.
tellp Çıkış akışındaki raporların konumu.
write Karakterleri bir akışa yerleştirir.

İşleçler

Operator Açıklama
operator= Sağlanan basic_ostream nesne parametresinin değerini bu nesneye atar.
operator<< Akışa yazar.

Gereksinimler

Üst Bilgi:<ostream>

Ad alanı: std

basic_ostream::basic_ostream

Bir basic_ostream nesne oluşturur.

explicit basic_ostream(
    basic_streambuf<Elem, Tr>* strbuf,
    bool _Isstd = false);

basic_ostream(basic_ostream&& right);

Parametreler

strbuf
basic_streambuf türünde bir nesne.

_Isstd
true bu standart bir akışsa; aksi takdirde , false.

Sağ
türünde basic_ostreambir nesneye rvalue başvurusu.

Açıklamalar

İlk oluşturucu init()strbuf çağrısı yaparak temel sınıfı başlatır. İkinci oluşturucu, basic_ios::move(right) çağrısı yaparak temel sınıfı başlatır.

Örnek

Çıkış akışları hakkında daha fazla bilgi edinmek için basic_ofstream::basic_ofstream örneğine bakın.

basic_ostream::flush

Arabelleği temizler.

basic_ostream<Elem, Tr>& flush();

Dönüş Değeri

basic_ostream nesnesine başvuru.

Açıklamalar

rdbuf null işaretçi değilse, işlev rdbuf-pubsync'i> çağırır. Bu -1 döndürürse, işlev setstate(badbit) öğesini çağırır. *this değerini döndürür.

Örnek

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

int main( )
{
   using namespace std;
   cout << "test";
   cout.flush();
}
test

basic_ostream::operator<<

Akışa yazar.

basic_ostream<Elem, Tr>& operator<<(
    basic_ostream<Elem, Tr>& (* Pfn)(basic_ostream<Elem, Tr>&));

basic_ostream<Elem, Tr>& operator<<(
    ios_base& (* Pfn)(ios_base&));

basic_ostream<Elem, Tr>& operator<<(
    basic_ios<Elem, Tr>& (* Pfn)(basic_ios<Elem, Tr>&));

basic_ostream<Elem, Tr>& operator<<(basic_streambuf<Elem, Tr>* strbuf);
basic_ostream<Elem, Tr>& operator<<(bool val);
basic_ostream<Elem, Tr>& operator<<(short val);
basic_ostream<Elem, Tr>& operator<<(unsigned short val);
basic_ostream<Elem, Tr>& operator<<(int __w64  val);
basic_ostream<Elem, Tr>& operator<<(unsigned int __w64  val);
basic_ostream<Elem, Tr>& operator<<(long val);
basic_ostream<Elem, Tr>& operator<<(unsigned long __w64  val);
basic_ostream<Elem, Tr>& operator<<(long long val);
basic_ostream<Elem, Tr>& operator<<(unsigned long long val);
basic_ostream<Elem, Tr>& operator<<(float val);
basic_ostream<Elem, Tr>& operator<<(double val);
basic_ostream<Elem, Tr>& operator<<(long double val);
basic_ostream<Elem, Tr>& operator<<(const void* val);

Parametreler

Pfn
İşlev işaretçisi.

strbuf
Nesne işaretçisi stream_buf .

Val
Akışa yazacak öğe.

Dönüş Değeri

basic_ostream nesnesine başvuru.

Açıklamalar

Ostream <> üst bilgisi çeşitli genel ekleme işleçlerini de tanımlar. Daha fazla bilgi için bkz . işleç<<.

İlk üye işlevi, formun ostr << endl bir ifadesinin endl(ostr) çağırmasını sağlar ve sonra *this değerini döndürür. İkinci ve üçüncü işlevler, onaltılık gibi diğer manipülatörlerin benzer şekilde davranmasını sağlar. Kalan işlevlerin tümü biçimlendirilmiş çıkış işlevleridir.

işlevi

basic_ostream<Elem, Tr>& operator<<(basic_streambuf<Elem, Tr>* strbuf);

strbuf null işaretçi değilse, strbuf öğesinden öğeleri ayıklar ve ekler. Ayıklama, dosyanın sonunda durur veya ayıklama bir özel durum oluşturursa (yeniden oluşturulur). Ayrıca, ekleme başarısız olursa söz konusu öğe ayıklanmadan durur. İşlev hiçbir öğe eklemezse veya bir ayıklama özel durum oluşturursa işlev setstate(failbit) öğesini çağırır. Her durumda işlev *this değerini döndürür.

işlevi

basic_ostream<Elem, Tr>& operator<<(bool val);

_Val Boole alanına dönüştürür ve use_facet num_put<<Elem, OutIt>(getloc) öğesini çağırarak ekler. put(OutIt(rdbuf), *this, getloc, val). Burada ostreambuf_iterator OutIt<Elem, Tr> olarak tanımlanmıştır. işlevi *this değerini döndürür.

İşlevler

basic_ostream<Elem, Tr>& operator<<(short val);
basic_ostream<Elem, Tr>& operator<<(unsigned short val);
basic_ostream<Elem, Tr>& operator<<(int val);
basic_ostream<Elem, Tr>& operator<<(unsigned int __w64  val);
basic_ostream<Elem, Tr>& operator<<(long val);
basic_ostream<Elem, Tr>& operator<<(unsigned long val);
basic_ostream<Elem, Tr>& operator<<(long long val);
basic_ostream<Elem, Tr>& operator<<(unsigned long long val);
basic_ostream<Elem, Tr>& operator<<(const void* val);

her bir değeri sayısal alana dönüştürür ve use_facet num_put<<Elem, OutIt>()getloc çağrısı yaparak ekler. put(OutIt(rdbuf), *this, getloc, val). Burada OutIt, ostreambuf_iterator<Elem, Tr> olarak tanımlanır. işlevi *this değerini döndürür.

İşlevler

basic_ostream<Elem, Tr>& operator<<(float val);
basic_ostream<Elem, Tr>& operator<<(double val);
basic_ostream<Elem, Tr>& operator<<(long double val);

her bir değeri sayısal alana dönüştürür ve use_facet num_put<<Elem, OutIt>(getloc). put(OutIt(rdbuf), *this, getloc, val) çağrısı yaparak ekleyin. Burada OutIt, ostreambuf_iterator<Elem, Tr> olarak tanımlanır. işlevi *this değerini döndürür.

Örnek

// basic_ostream_op_write.cpp
// compile with: /EHsc
#include <iostream>
#include <string.h>

using namespace std;

ios_base& hex2( ios_base& ib )
{
   ib.unsetf( ios_base::dec );
   ib.setf( ios_base::hex );
   return ib;
}

basic_ostream<char, char_traits<char> >& somefunc(basic_ostream<char, char_traits<char> > &i)
{
    if (i == cout)
    {
        i << "i is cout" << endl;
    }
    return i;
}

class CTxtStreambuf : public basic_streambuf< char, char_traits< char > >
{
public:
    CTxtStreambuf(char *_pszText)
    {
        pszText = _pszText;
        setg(pszText, pszText, pszText + strlen(pszText));
    };
    char *pszText;
};

int main()
{
    cout << somefunc;
    cout << 21 << endl;

    hex2(cout);
    cout << 21 << endl;

    CTxtStreambuf f("text in streambuf");
    cout << &f << endl;
}

basic_ostream::operator=

Sağlanan basic_ostream nesne parametresi için değerleri bu nesneye atar.

basic_ostream& operator=(basic_ostream&& right);

Parametreler

Sağ
Bir rvalue nesneye basic_ostream başvuru.

Açıklamalar

Üye işleci swap çağrısında bulunur (right).

basic_ostream::p ut

Bir karakteri akışa yerleştirir.

basic_ostream<Elem, Tr>& put(char_type _Ch);

Parametreler

_Caner
Bir karakter.

Dönüş Değeri

basic_ostream nesnesine başvuru.

Açıklamalar

Biçimlendirilmemiş çıkış işlevi _Ch öğesini ekler. *this değerini döndürür.

Örnek

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

int main( )
{
   using namespace std;
   cout.put( 'v' );
   cout << endl;
   wcout.put( L'l' );
}
v
l

basic_ostream::seekp

Çıkış akışındaki konumu sıfırlayın.

basic_ostream<Elem, Tr>& seekp(pos_type _Pos);

basic_ostream<Elem, Tr>& seekp(off_type _Off, ios_base::seekdir _Way);

Parametreler

_Pos
Akıştaki konum.

_Kapalı
_Way göreli uzaklık.

_Yol
ios_base::seekdir numaralandırmalarından biri.

Dönüş Değeri

basic_ostream nesnesine başvuru.

Açıklamalar

başarısız olursa, ilk üye işlevi bazı pos_type geçici nesnesi newposiçin newpos = rdbuf-> pubseekpos(_Pos) öğesini çağırır.false False isefail, ikinci işlev newpos = rdbuf- > pubseekoff(_Off, _Way) öğesini çağırır. Her iki durumda da, (off_type)newpos == (off_type)(-1) (konumlandırma işlemi başarısız olursa), işlev istr'i çağırır .setstate(failbit). her iki işlev de *this değerini döndürür.

Örnek

// basic_ostream_seekp.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main()
{
    using namespace std;
    ofstream x("basic_ostream_seekp.txt");
    streamoff i = x.tellp();
    cout << i << endl;
    x << "testing";
    i = x.tellp();
    cout << i << endl;
    x.seekp(2);   // Put char in third char position in file
    x << " ";

    x.seekp(2, ios::end);   // Put char two after end of file
    x << "z";
}
0
7

basic_ostream::sentry

İç içe geçmiş sınıf, bildirimi biçimlendirilmiş çıkış işlevlerini ve biçimlendirilmemiş çıkış işlevlerini yapılandırılmış bir nesneyi açıklar.

class sentry { public: explicit sentry(basic_ostream<Elem, Tr>& _Ostr); operator bool() const; ~sentry(); };

Açıklamalar

İç içe geçmiş sınıf, bildirimi biçimlendirilmiş çıkış işlevlerini ve biçimlendirilmemiş çıkış işlevlerini yapılandırılmış bir nesneyi açıklar. Eğer ostr ise.İyi ve true ostr.tie null bir işaretçi değildir, oluşturucu ostr.tie-flush> öğesini çağırır. Oluşturucu daha sonra tarafından ostr.good döndürülen değeri içinde statusdepolar. Bu depolanan değeri teslim etmek için operator bool sonraki bir çağrı.

döndürür ve bayraklar &unitbuf sıfır değilse, yok edici flush çağırır.false uncaught_exception

basic_ostream::swap

Sağlanan basic_ostreamdeğerinin değerleri için bu basic_ostream nesnenin değerlerini değiştirir.

void swap(basic_ostream& right);

Parametreler

Sağ
Bir nesneye basic_ostream başvuru.

Açıklamalar

Üye işlevi, bu nesnenin içeriğini sağın içeriğiyle değiştirmek için basic_ios::swap(right) öğesini çağırır.

basic_ostream::tellp

Çıkış akışındaki rapor konumu.

pos_type tellp();

Dönüş Değeri

Çıkış akışındaki konum.

Açıklamalar

başarısız olursa, üye işlevi rdbuf- > pubseekoff(0, cur, in) döndürür.false Aksi takdirde, (-1) döndürür pos_type.

Örnek

Kullanarak tellpbir örnek için bkz. arama.

basic_ostream::write

Karakterleri bir akışa yerleştirin.

basic_ostream<Elem, Tr>& write(const char_type* str, streamsize count);

Parametreler

count
Akışa konulacak karakter sayısı.

str
Akışa konulacak karakterler.

Dönüş Değeri

basic_ostream nesnesine başvuru.

Açıklamalar

Biçimlendirilmemiş çıkış işlevi, adımdan başlayarak sayı öğelerinin sırasını ekler.

Örnek

Kullanarak writebir örnek için bkz. streamsize.

Ayrıca bkz.

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