Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il modello di classe descrive un oggetto iteratore di output che scrive elementi carattere successivi nel flusso di output con l'estrazione . Gli oggetti differiscono da quelli della classe con caratteri anziché un tipo generico in corrispondenza del tipo di oggetto inserito nel flusso di output.
Sintassi
template <class CharType = char, class Traits = char_traits <CharType>>
Parametri
CharType
Tipo che rappresenta il tipo di carattere per ostreambuf_iterator. Questo argomento è facoltativo e il valore predefinito è .
Traits
Tipo che rappresenta il tipo di carattere per ostreambuf_iterator. Questo argomento è facoltativo e il valore predefinito è .
Osservazioni:
La classe ostreambuf_iterator deve soddisfare i requisiti per un iteratore di output. Gli algoritmi possono essere scritti direttamente nei flussi di output utilizzando un . La classe fornisce un iteratore del flusso di basso livello che consente l'accesso al flusso I/O non elaborato (non formattato) sotto forma di caratteri e la possibilità di ignorare le conversioni dei caratteri e del buffer associate agli iteratori del flusso di alto livello.
Costruttori
| Costruttore | Descrizione |
|---|---|
ostreambuf_iterator |
Costruisce un inizializzato per scrivere i caratteri nel flusso di output. |
Typedef
| Nome tipo | Descrizione |
|---|---|
char_type |
Tipo che fornisce il tipo di carattere di . |
ostream_type |
Tipo che fornisce il tipo di flusso di . |
streambuf_type |
Tipo che fornisce il tipo di flusso di . |
traits_type |
Tipo che fornisce il tipo di tratti di . |
Funzioni membro
| Funzione membro | Descrizione |
|---|---|
failed |
Verifica l'esito negativo di un inserimento nel buffer del flusso di output. |
Operatori
| Operatore | Descrizione |
|---|---|
operator* |
Operatore di dereferenziazione usato per implementare l'espressione dell'iteratore di output . |
operator++ |
Operatore di incremento non funzionale che restituisce allo stesso oggetto a cui ha puntato prima che venisse chiamata l'operazione. |
operator= |
L'operatore inserisce un carattere nel buffer del flusso associato. |
Requisiti
Intestazione:
Spazio dei nomi:
ostreambuf_iterator::char_type
Tipo che fornisce il tipo di carattere di .
typedef CharType char_type;
Osservazioni:
Il tipo è un sinonimo del parametro di modello .
Esempio
// 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
Verifica l'esito negativo di un inserimento nel buffer del flusso di output.
bool failed() const throw();
Valore restituito
se in precedenza non è stato eseguito alcun inserimento nel buffer del flusso di output; in caso contrario , .
Osservazioni:
La funzione membro restituisce se un tentativo precedente di inserire un carattere nel buffer del flusso di output non è riuscito.
Esempio
// 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*
Operatore di dereferenziazione non funzionale usato per implementare l'espressione dell'iteratore di output .
ostreambuf_iterator<CharType, Traits>& operator*();
Valore restituito
Oggetto iteratore ostreambuf.
Osservazioni:
Questo operatore funziona solo nell'espressione dell'iteratore di output per restituire i caratteri nel buffer di flusso. Applicato a un oggetto , restituisce l'iteratore; restituisce .
Esempio
// 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++
Operatore di incremento non funzionale che restituisce un oggetto allo stesso carattere indirizzato prima della chiamata dell'operazione.
ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);
Valore restituito
Riferimento al carattere originariamente indirizzato o a un oggetto definito dall'implementazione convertibile in .
Osservazioni:
L'operatore viene usato per implementare l'espressione dell'iteratore di output .
Esempio
// 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=
L'operatore inserisce un carattere nel buffer del flusso associato.
ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);
Parametri
_Char
Carattere da inserire nel buffer del flusso.
Valore restituito
Riferimento al carattere inserito nel buffer del flusso.
Osservazioni:
Operatore di assegnazione usato per implementare l'espressione dell'iteratore di output per la scrittura in un flusso di output.
Esempio
// 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
Costruisce un inizializzato per scrivere i caratteri nel flusso di output.
ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();
Parametri
strbuf
Oggetto streambuf di output usato per inizializzare il puntatore del buffer del flusso di output.
Ostr
Oggetto del flusso di output usato per inizializzare il puntatore del buffer del flusso di output.
Osservazioni:
Il primo costruttore inizializza il puntatore del buffer del flusso di output con .
Il secondo costruttore inizializza il puntatore del buffer del flusso di output con *. Il puntatore archiviato non deve essere un puntatore null.
Esempio
// 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
Tipo che fornisce il tipo di flusso di .
typedef basicOstream<CharType, Traits> ostream_type;
Osservazioni:
Il tipo è un sinonimo di
Esempio
Vedere per un esempio di come dichiarare e usare .
ostreambuf_iterator::streambuf_type
Tipo che fornisce il tipo di flusso di .
typedef basic_streambuf<CharType, Traits> streambuf_type;
Osservazioni:
Il tipo è un sinonimo di , una classe di flusso per i buffer di I/O che diventa quando specializzata nel tipo di carattere .
Esempio
Vedere per un esempio di come dichiarare e usare .
ostreambuf_iterator::traits_type
Tipo che fornisce il tipo di tratti di .
typedef Traits traits_type;
Osservazioni:
Il tipo è un sinonimo del parametro di modello .
Esempio
// 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.
Vedi anche
Iteratore
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)
Informazioni di riferimento per la libreria standard C++