basic_ostream Sınıfı
Bu sınıf şablonu, karakter özellikleri traits_type olarak da bilinen sınıfı Tr
tarafından belirlenen ve char_type olarak da bilinen türünde öğeler Elem
ve 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_ostream
bir 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 newpos
iç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 status
depolar. 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_ostream
değ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 tellp
bir ö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 write
bir örnek için bkz. streamsize.
Ayrıca bkz.
C++ Standart Kitaplığında İş Parçacığı Güvenliği
iostream Programlaması
iostreams Kuralları