Freigeben über


-Klasse

Die Klassenvorlage beschreibt ein Ausgabe iterator-Objekt, das aufeinander folgende Zeichenelemente in den Ausgabedatenstrom mit der Extraktion schreibt. Die Objekte unterscheiden sich von denen der Klasse bei Zeichen anstelle eines generischen Typs beim Typ des Objekts, das in den Ausgabedatenstrom eingefügt wird.

Syntax

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

Parameter

CharType
Der Typ, der den Zeichentyp für das ostreambuf_iterator-Objekt darstellt. Dieses Argument ist optional, und der Standardwert ist .

Traits
Der Typ, der den Zeichentyp für das ostreambuf_iterator-Objekt darstellt. Dieses Argument ist optional, und der Standardwert ist .

Hinweise

Die ostreambuf_iterator-Klasse muss den Anforderungen für einen Ausgabeiterator entsprechen. Algorithmen können mit direkt in Ausgabestreams geschrieben werden. Die Klasse bietet einen Streamiterator auf niedriger Ebene, der Zugriff auf den unformatierten E/A-Stream in Form von Zeichen und die Fähigkeit erlaubt, die Pufferung und die Zeichenumsetzungen zu umgehen, die mit den Streamiteratoren auf hoher Ebene verbunden sind.

Konstruktoren

Konstruktor Beschreibung
ostreambuf_iterator Erstellt einen , der zum Schreiben von Zeichen in den Ausgabestream initialisiert wird.

TypeDefs

Typname Beschreibung
char_type Ein Typ, der für den Zeichentyp von bereitgestellt wird.
ostream_type Ein Typ, der für den Streamtyp von bereitgestellt wird.
streambuf_type Ein Typ, der für den Streamtyp von bereitgestellt wird.
traits_type Ein Typ, der für den Merkmaltyp von bereitgestellt wird.

Memberfunktionen

Memberfunktion Beschreibung
failed Testet eine Einfügung in den Ausgabestreampuffer auf Fehler.

Operatoren

Operator Beschreibung
operator* Dereferencing-Operator, der zum Implementieren des Ausgabe iteratorausdrucks verwendet wird.
operator++ Ein nicht funktionaler Inkrementoperator, der einen zum gleichen Objekt zurückgibt, das er adressiert hat, bevor der Vorgang aufgerufen wurde.
operator= Der Operator fügt ein Zeichen in den zugeordneten Streampuffer ein.

Anforderungen

Kopfball:

Namespace:

ostreambuf_iterator::char_type

Ein Typ, der für den Zeichentyp von bereitgestellt wird.

typedef CharType char_type;

Hinweise

Der Type stellt ein Synonym für den Vorlagenparameter dar.

Beispiel

// 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;
}
OUT.

ostreambuf_iterator::failed

Testet eine Einfügung in den Ausgabestreampuffer auf Fehler.

bool failed() const throw();

Rückgabewert

wenn zuvor kein Einfügen in den Ausgabedatenstrompuffer fehlgeschlagen ist; andernfalls .

Hinweise

Die Memberfunktion gibt zurück , wenn ein vorheriger Versuch, ein Zeichen in den Ausgabedatenstrompuffer einzufügen, nicht erfolgreich war.

Beispiel

// 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;
}
abc are characters output individually.
No insertions failed.

ostreambuf_iterator::operator*

Ein nicht funktionsfähiger Dereferencing-Operator, der zum Implementieren des Ausgabe iteratorausdrucks verwendet wird.

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

Rückgabewert

Das ostreambuf-Iteratorobjekt.

Hinweise

Dieser Operator funktioniert nur im Ausgabe iteratorausdruck , um Zeichen im Streampuffer auszugeben. Wird auf ein , gibt es den Iterator zurück; gibt zurück .

Beispiel

// 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';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator++

Ein nicht funktionsfähiger Inkrementoperator, der ein bis zum Aufrufen des Vorgangs adressiertes Zeichen zurückgibt.

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

Rückgabewert

Ein Verweis auf das ursprünglich adressierte Zeichen oder auf ein implementierungsdefiniertes Objekt, das in .

Hinweise

Der Operator wird verwendet, um den Ausgabe iteratorausdruck zu implementieren.

Beispiel

// 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';
}
Elements written to output stream:
OUT

ostreambuf_iterator::operator=

Der Operator fügt ein Zeichen in den zugeordneten Streampuffer ein.

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

Parameter

_Char
Das in den Streampuffer einzufügende Zeichen.

Rückgabewert

Ein Verweis auf das in den Streampuffer eingefügte Zeichen.

Hinweise

Zuordnungsoperator zum Implementieren des Ausgabe iteratorausdrucks zum Schreiben in einen Ausgabedatenstrom.

Beispiel

// 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';
}
Elements written to output stream:
OUT

ostreambuf_iterator::ostreambuf_iterator

Erstellt einen , der zum Schreiben von Zeichen in den Ausgabestream initialisiert wird.

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

Parameter

strbuf
Das zur Initialiserung des Ausgabestreampufferzeigers verwendete streambuf-Ausgabeobjekt.

Ostr
Das zur Initialiserung des Ausgabestreampufferzeigers verwendete Streamausgabeobjekt.

Hinweise

Der erste Konstruktor initialisiert den Ausgabedatenstrompufferzeiger mit .

Der zweite Konstruktor initialisiert den Ausgabedatenstrompufferzeiger mit *. Der gespeicherte Zeiger darf kein NULL-Zeiger sein.

Beispiel

// 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 );
}
OUT are characters output individually.
These characters are being written to the output stream.

ostreambuf_iterator::ostream_type

Ein Typ, der für den Streamtyp von bereitgestellt wird.

typedef basicOstream<CharType, Traits> ostream_type;

Hinweise

Der Typ ist ein Synonym für

Beispiel

Ein Beispiel zum Deklarieren und Verwenden finden Sie unter .

ostreambuf_iterator::streambuf_type

Ein Typ, der für den Streamtyp von bereitgestellt wird.

typedef basic_streambuf<CharType, Traits> streambuf_type;

Hinweise

Der Typ ist ein Synonym für , eine Datenstromklasse für E/A-Puffer, die sich auf den Zeichentyp spezialisiert.

Beispiel

Ein Beispiel zum Deklarieren und Verwenden finden Sie unter .

ostreambuf_iterator::traits_type

Ein Typ, der für den Merkmaltyp von bereitgestellt wird.

typedef Traits traits_type;

Hinweise

Der Type stellt ein Synonym für den Vorlagenparameter dar.

Beispiel

// 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;
}
The characters written to the output stream
by charOutBuf are: OUT.

Siehe auch

Iterator
Threadsicherheit in der C++-Standardbibliothek
C++-Standardbibliotheksreferenz