Condividi tramite


Classe

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++