Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här klassmallen beskriver ett objekt som styr infogning av element och kodade objekt i en strömbuffert med element av typen Elem, även kallat char_type, vars karaktärsdrag bestäms av klassen Tr, även kallat traits_type.
Syntax
template <class Elem, class Tr = char_traits<Elem>>
class basic_ostream : virtual public basic_ios<Elem, Tr>
Parameterar
Elem
En char_type.
Tr
Tecknet traits_type.
Anmärkningar
De flesta medlemsfunktioner som överbelastar operatorn<< är formaterade utdatafunktioner. De följer mönstret:
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);
Två andra medlemsfunktioner är oformaterade utdatafunktioner. De följer mönstret:
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);
Båda grupperna av funktioner anropar setstate(badbit) om de stöter på ett fel när element infogas.
< är ett objekt av klass basic_istream> och lagrar endast ett virtuellt offentligt basobjekt av klass basic_ios<Elem, Tr>.
Exempel
Mer information om utdataströmmar finns i exemplet för basic_ofstream-klass .
Konstruktörer
| Konstruktor | Beskrivning |
|---|---|
| basic_ostream | Konstruerar ett basic_ostream objekt. |
Medlemsfunktioner
| Medlemsfunktion | Beskrivning |
|---|---|
| spola | Tömer bufferten. |
| lägga | Placerar ett tecken i en ström. |
| seekp | Återställer position i utdataströmmen. |
| vaktpost | Den kapslade klassen beskriver ett objekt vars deklaration strukturerar de formaterade utdatafunktionerna och de oformaterade utdatafunktionerna. |
| växla | Utbyter värdena för det här basic_ostream objektet för det angivna basic_ostream objektet. |
| tellp | Rapporterar position i utdataströmmen. |
| skriva | Placerar tecken i en ström. |
Operatörer
| Operatör | Beskrivning |
|---|---|
| operator= | Tilldelar värdet för den angivna basic_ostream objektparametern till det här objektet. |
| operatör<< | Skriver till strömmen. |
Kravspecifikation
Rubrik:<ostream>
namnområde: std
basic_ostream::basic_ostream
Konstruerar ett basic_ostream objekt.
explicit basic_ostream(
basic_streambuf<Elem, Tr>* strbuf,
bool _Isstd = false);
basic_ostream(basic_ostream&& right);
Parameterar
strbuf
Ett objekt av typen basic_streambuf.
_Isstd
trueom detta är en standardström; annars . false
rätt
En rvalue-referens till ett objekt av typen basic_ostream.
Anmärkningar
Den första konstruktorn initierar basklassen genom att anropa init(strbuf). Den andra konstruktorn initierar basklassen genom att anropa basic_ios::move(right).
Exempel
Mer information om utdataströmmar finns i exemplet för basic_ofstream::basic_ofstream .
basic_ostream::flush
Tömer bufferten.
basic_ostream<Elem, Tr>& flush();
Returvärde
En referens till det basic_ostream objektet.
Anmärkningar
Om rdbuf inte är en null-pekare anropar funktionen rdbuf-pubsync>. Om det returnerar -1 anropar funktionen setstate(badbit). Den returnerar *detta.
Exempel
// basic_ostream_flush.cpp
// compile with: /EHsc
#include <iostream>
int main( )
{
using namespace std;
cout << "test";
cout.flush();
}
test
basic_ostream::operator<<
Skriver till strömmen.
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);
Parameterar
Pfn
En funktionspekare.
strbuf
En pekare till ett stream_buf objekt.
val
Ett element som ska skrivas till dataströmmen.
Returvärde
En referens till det basic_ostream objektet.
Anmärkningar
Ostream-huvudet <> definierar också flera globala infogningsoperatorer. Mer information finns i operatorn<<.
Den första medlemsfunktionen säkerställer att ett uttryck i formuläret ostr << endl anropar endl(ostr) och sedan returnerar *detta. Den andra och tredje funktionen säkerställer att andra manipulatorer, till exempel hex, beter sig på samma sätt. De återstående funktionerna är alla formaterade utdatafunktioner.
Funktionen
basic_ostream<Elem, Tr>& operator<<(basic_streambuf<Elem, Tr>* strbuf);
extraherar element från strbuf, om strbuf inte är en null-pekare och infogar dem. Extrahering stoppas i slutet av filen, eller om ett extrahering utlöser ett undantag (som är återväxt). Det stoppar också, utan att extrahera det aktuella elementet, om en infogning misslyckas. Om funktionen inte infogar några element, eller om ett extrahering utlöser ett undantag, anropar funktionen setstate(failbit). I vilket fall som helst returnerar funktionen *detta.
Funktionen
basic_ostream<Elem, Tr>& operator<<(bool val);
konverterar _Val till ett booleskt fält och infogar det genom att anropa use_facet<num_put<Elem, OutIt>(getloc).
put(OutIt(rdbuf), *this, getloc, val).
OutIt Här definieras som ostreambuf_iterator<Elem, Tr>. Funktionen returnerar *detta.
Funktionerna
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);
konvertera val till ett numeriskt fält och infoga det genom att anropa use_facet<num_put<Elem, OutIt>(getloc).
put(OutIt(rdbuf), *this, getloc, val). Här definieras OutIt som ostreambuf_iterator<Elem, Tr>. Funktionen returnerar *detta.
Funktionerna
basic_ostream<Elem, Tr>& operator<<(float val);
basic_ostream<Elem, Tr>& operator<<(double val);
basic_ostream<Elem, Tr>& operator<<(long double val);
konvertera val till ett numeriskt fält och infoga det genom att anropa use_facet<num_put<Elem, OutIt>(getloc). put(OutIt(rdbuf), *this, getloc, val). Här definieras OutIt som ostreambuf_iterator<Elem, Tr>. Funktionen returnerar *detta.
Exempel
// 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=
Tilldelar värden för den angivna basic_ostream objektparametern till det här objektet.
basic_ostream& operator=(basic_ostream&& right);
Parameterar
rätt
En rvalue referens till ett basic_ostream objekt.
Anmärkningar
Medlemsoperatorn anropar växling (right).
basic_ostream::p ut
Placerar ett tecken i en ström.
basic_ostream<Elem, Tr>& put(char_type _Ch);
Parameterar
_Ch
Ett tecken.
Returvärde
En referens till det basic_ostream objektet.
Anmärkningar
Den oformaterade utdatafunktionen infogar elementet _Ch. Den returnerar *detta.
Exempel
// 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
Återställ position i utdataströmmen.
basic_ostream<Elem, Tr>& seekp(pos_type _Pos);
basic_ostream<Elem, Tr>& seekp(off_type _Off, ios_base::seekdir _Way);
Parameterar
_Pos
Positionen i strömmen.
_Bort
Förskjutningen i förhållande till _Way.
_Väg
En av de ios_base::seekdir uppräkningar.
Returvärde
En referens till det basic_ostream objektet.
Anmärkningar
Om misslyckas anropar falseden första medlemsfunktionen newpos =rdbuf-pubseekpos>(_Pos) för ett pos_type tillfälligt objekt .newpos Om fail är false anropar den andra funktionen newpos = rdbuf-pubseekoff>(_Off, _Way). I båda fallen, om (off_type)newpos == (off_type)(-1) (positioneringsåtgärden misslyckas), anropar funktionen istr.setstate(failbit). Båda funktionerna returnerar *detta.
Exempel
// 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
Den kapslade klassen beskriver ett objekt vars deklaration strukturerar de formaterade utdatafunktionerna och de oformaterade utdatafunktionerna.
class sentry
{
public:
explicit sentry(basic_ostream<Elem, Tr>& _Ostr);
operator bool() const;
~sentry();
};
Anmärkningar
Den kapslade klassen beskriver ett objekt vars deklaration strukturerar de formaterade utdatafunktionerna och de oformaterade utdatafunktionerna. Om ostr.bra är true och ostr.tie är inte en null-pekare, konstruktorn anropar ostr.tie-flush>. Konstruktorn lagrar sedan värdet som returneras av ostr.good i status. Ett senare anrop för att operator bool leverera det här lagrade värdet.
Om uncaught_exception returnerar false och flaggor&unitbuf inte är noll anropar destruatorn tömning.
basic_ostream::swap
Byter värden för det här basic_ostream objektet mot värdena för den angivna basic_ostream.
void swap(basic_ostream& right);
Parameterar
rätt
En referens till ett basic_ostream objekt.
Anmärkningar
Medlemsfunktionen anropar basic_ios::swap(right) för att utbyta innehållet i det här objektet mot innehållet i rättigheten.
basic_ostream::tellp
Rapportposition i utdataströmmen.
pos_type tellp();
Returvärde
Position i utdataströmmen.
Anmärkningar
Om misslyckasfalsereturnerar medlemsfunktionen rdbuf-pubseekoff>(0, cur, in). Annars returneras pos_type(-1).
Exempel
Se seekp för ett exempel med hjälp av tellp.
basic_ostream::write
Placera tecken i en ström.
basic_ostream<Elem, Tr>& write(const char_type* str, streamsize count);
Parameterar
antal
Antal tecken som ska placeras i strömmen.
Str
Tecken som ska placeras i strömmen.
Returvärde
En referens till det basic_ostream objektet.
Anmärkningar
Den oformaterade utdatafunktionen infogar sekvensen med antal element som börjar på str.
Exempel
Se streamsize för ett exempel med .write
Se även
Trådsäkerhet i C++ Standard Library
iostream-programmering
iostreams-konventioner