Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O modelo de classe descreve um objeto iterador de saída que escreve elementos sucessivos de carácter no fluxo de saída com a extração . Os s diferem dos da Classe por terem caracteres em vez de um tipo genérico no tipo de objeto inserido no fluxo de saída.
Sintaxe
template <class CharType = char, class Traits = char_traits <CharType>>
Parâmetros
CharType
O tipo que representa o tipo de carácter do ostreambuf_iterator. Este argumento é opcional e o valor padrão é .
Traits
O tipo que representa o tipo de carácter do ostreambuf_iterator. Este argumento é opcional e o valor padrão é .
Observações
A ostreambuf_iterator classe deve satisfazer os requisitos para um iterador de saída. Os algoritmos podem ser escritos diretamente para os fluxos de saída usando um . A classe fornece um iterador de fluxo de baixo nível que permite o acesso ao fluxo bruto (não formatado) de I/O sob a forma de caracteres e a capacidade de contornar o buffering e as traduções de caracteres associados aos iteradores de fluxo de alto nível.
Construtores
| Constructor | Descrição |
|---|---|
ostreambuf_iterator |
Constrói um que é inicializado para escrever caracteres no fluxo de saída. |
Typedefs (definições de tipos)
| Nome do tipo | Descrição |
|---|---|
char_type |
Um tipo que fornece o tipo de carácter do . |
ostream_type |
Um tipo que fornece o tipo de fluxo do . |
streambuf_type |
Um tipo que fornece o tipo de fluxo do . |
traits_type |
Um tipo que fornece o tipo de traços de carácter do . |
Funções de membro
| Função de membro | Descrição |
|---|---|
failed |
Testa a falha de uma inserção no buffer do fluxo de saída. |
Operadores
| Operador | Descrição |
|---|---|
operator* |
Operador de desreferenciação usado para implementar a expressão iteradora de saída . |
operator++ |
Um operador de incremento não funcional que devolve an ao mesmo objeto que endereçou antes da operação ser chamada. |
operator= |
O operador insere um carácter no buffer de fluxo associado. |
Requisitos
Cabeçalho:
Espaço de nomes:
ostreambuf_iterator::char_type
Um tipo que fornece o tipo de carácter do .
typedef CharType char_type;
Observações
O tipo é um sinônimo para o parâmetro de modelo .
Exemplo
// 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
Testa a falha de uma inserção no buffer do fluxo de saída.
bool failed() const throw();
Valor de retorno
se nenhuma inserção no buffer do fluxo de saída tiver falhado anteriormente; caso contrário .
Observações
A função membro retorna se qualquer tentativa anterior de inserir um carácter no buffer do fluxo de saída não tenha sido bem-sucedida.
Exemplo
// 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*
Um operador de desreferenciação não funcional usado para implementar a expressão iteradora de saída .
ostreambuf_iterator<CharType, Traits>& operator*();
Valor de retorno
O objeto iterador ostreambuf.
Observações
Este operador funciona apenas na expressão do iterador de saída para enviar caracteres para o buffer do fluxo. Aplicado a um , devolve o iterador; devolve .
Exemplo
// 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++
Um operador de incremento não funcional que devolve an ao mesmo carácter que endereçou antes de a operação ser chamada.
ostreambuf_iterator<CharType, Traits>& operator++();
ostreambuf_iterator<CharType, Traits>& operator++(int);
Valor de retorno
Uma referência ao carácter originalmente endereçado ou a um objeto definido pela implementação que é convertível para .
Observações
O operador é usado para implementar a expressão iteradora de saída .
Exemplo
// 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=
O operador insere um carácter no buffer de fluxo associado.
ostreambuf_iterator<CharType, Traits>& operator=(CharType _Char);
Parâmetros
_Char
O carácter a inserir no buffer do fluxo.
Valor de retorno
Uma referência ao carácter inserido no buffer do fluxo.
Observações
Operador de atribuição usado para implementar a expressão iteradora de saída para escrita num fluxo de saída.
Exemplo
// 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
Constrói um que é inicializado para escrever caracteres no fluxo de saída.
ostreambuf_iterator(streambuf_type* strbuf) throw();
ostreambuf_iterator(ostream_type& Ostr) throw();
Parâmetros
strbuf
O objeto streambuf de saída é usado para inicializar o ponteiro do buffer de fluxo de saída.
Ostr
O objeto de fluxo de saída usado para inicializar o ponteiro do buffer de fluxo de saída.
Observações
O primeiro construtor inicializa o ponteiro de buffer de fluxo de saída com .
O segundo construtor inicializa o ponteiro do buffer de fluxo de saída com *. O ponteiro armazenado não pode ser um ponteiro nulo.
Exemplo
// 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
Um tipo que fornece o tipo de fluxo do .
typedef basicOstream<CharType, Traits> ostream_type;
Observações
O tipo é sinónimo de
Exemplo
Veja um exemplo de como declarar e usar .
ostreambuf_iterator::streambuf_type
Um tipo que fornece o tipo de fluxo do .
typedef basic_streambuf<CharType, Traits> streambuf_type;
Observações
O tipo é sinónimo de , uma classe de fluxo para buffers de I/O que se torna quando especializada para o tipo de carácter .
Exemplo
Veja um exemplo de como declarar e usar .
ostreambuf_iterator::traits_type
Um tipo que fornece o tipo de traços de carácter do .
typedef Traits traits_type;
Observações
O tipo é um sinônimo para o parâmetro de modelo .
Exemplo
// 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.
Consulte também
iterador
Segurança de threads na biblioteca padrão C++
Referência da biblioteca padrão do C++