Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Klassenvorlage ostreambuf_iterator beschreibt ein Ausgabe iteratorobjekt, das aufeinander folgende Zeichenelemente in den Ausgabedatenstrom mit dem Extraktionsoperator >>schreibt. Die ostreambuf_iterator unterscheiden sich von denen der ostream_iterator-Klasse insofern, als dass sie über Zeichen anstelle eines generischen Typs im Hinblick auf den Objekttyp verfügen, der in den Ausgabestream 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 char.
Merkmale
Der Typ, der den Zeichentyp für das ostreambuf_iterator-Objekt darstellt. Dieses Argument ist optional, und der Standardwert ist char_traits<CharType>.
Hinweise
Die ostreambuf_iterator-Klasse muss den Anforderungen für einen Ausgabeiterator entsprechen. Algorithmen können mit ostreambuf_iterator 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 ostreambuf_iterator, der zum Schreiben von Zeichen in den Ausgabestream initialisiert wird. |
TypeDefs
| Typname | Beschreibung |
|---|---|
| char_type | Ein Typ, der für den Zeichentyp von ostreambuf_iterator bereitgestellt wird. |
| ostream_type | Ein Typ, der für den Streamtyp von ostream_iterator bereitgestellt wird. |
| streambuf_type | Ein Typ, der für den Streamtyp von ostreambuf_iterator bereitgestellt wird. |
| traits_type | Ein Typ, der für den Merkmaltyp von ostream_iterator bereitgestellt wird. |
Memberfunktionen
| Memberfunktion | Beschreibung |
|---|---|
| fehlgeschlagen | Testet eine Einfügung in den Ausgabestreampuffer auf Fehler. |
Operatoren
| Operator | Beschreibung |
|---|---|
| operator* | Der Dereferenzierungsoperator, der zum Implementieren des Ausgabeiteratorausdrucks *i = x verwendet wird. |
| operator++ | Ein nicht funktionaler Inkrementoperator, der einen ostreambuf_iterator 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
Header:<iterator>
Namespace: std
ostreambuf_iterator::char_type
Ein Typ, der für den Zeichentyp von ostreambuf_iterator bereitgestellt wird.
typedef CharType char_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter CharTypedar.
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;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/
ostreambuf_iterator::failed
Testet eine Einfügung in den Ausgabestreampuffer auf Fehler.
bool failed() const throw();
Rückgabewert
true wenn zuvor kein Einfügen in den Ausgabedatenstrompuffer fehlgeschlagen ist; andernfalls false.
Hinweise
Die Memberfunktion gibt zurück true , wenn in einer früheren Verwendung von Member operator=der Aufruf von subf_->sputc zurückgegebene eof.
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;
}
/* Output:
abc are characters output individually.
No insertions failed.
*/
ostreambuf_iterator::operator*
Ein nicht funktionsfähiger Dereferencing-Operator, der zum Implementieren des Ausgabe iteratorausdrucks * i = x verwendet wird.
ostreambuf_iterator<CharType, Traits>& operator*();
Rückgabewert
Das ostreambuf-Iteratorobjekt.
Hinweise
Dieser Operator funktioniert nur im Ausgabe iteratorausdruck * i = x, um Zeichen für den Datenstrompuffer auszugeben. Wird auf einen ostreambuf Iterator angewendet, gibt er den Iterator zurück; *iter returns iter,
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';
}
/* Output:
Elements written to output stream:
OUT
*/
ostreambuf_iterator::operator++
Ein nicht funktionaler Inkrementoperator, der einen ostream-Iterator zum gleichen Zeichen zurückgibt, das er adressiert hat, bevor der Vorgang aufgerufen wurde.
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 ostreambuf_iterator<CharType, Traits> konvertierbar ist.
Hinweise
Der Operator wird verwendet, um den Ausgabe iteratorausdruck * i = x 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';
}
/* Output:
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
_Verkohlen
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 * i = x 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';
}
/* Output:
Elements written to output stream:
OUT
*/
ostreambuf_iterator::ostreambuf_iterator
Erstellt einen ostreambuf_iterator, 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 strbuf.
Der zweite Konstruktor initialisiert den Zeiger auf den Ausgabestreampuffer mit Ostr. rdbuf. 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 );
}
/* Output:
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 ostream_iterator bereitgestellt wird.
typedef basicOstream<CharType, Traits> ostream_type;
Hinweise
Der Typ ist ein Synonym für basicOstream<CharType, Traits>
Beispiel
Unter ostreambuf_iterator finden Sie ein Beispiel für das Deklarieren und Verwenden von ostream_type.
ostreambuf_iterator::streambuf_type
Ein Typ, der für den Streamtyp von ostreambuf_iterator bereitgestellt wird.
typedef basic_streambuf<CharType, Traits> streambuf_type;
Hinweise
Der Typ ist ein Synonym für basic_streambuf<CharType, Traits>, eine Datenstromklasse für E/A-Puffer, die sich auf den Zeichentyp charspezialisiert habenstreambuf.
Beispiel
Unter ostreambuf_iterator finden Sie ein Beispiel für das Deklarieren und Verwenden von streambuf_type.
ostreambuf_iterator::traits_type
Ein Typ, der für den Merkmaltyp von ostream_iterator bereitgestellt wird.
typedef Traits traits_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Traitsdar.
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;
}
/* Output:
The characters written to the output stream
by charOutBuf are: OUT.
*/
Siehe auch
<iterator>
Threadsicherheit in der C++-Standardbibliothek
C++-Standardbibliotheksreferenz