Partager via


Classe

Le modèle de classe décrit un objet itérateur de sortie qui écrit des éléments caractères successifs dans le flux de sortie avec l’extraction . Les s diffèrent de celles de la classe en ayant des caractères au lieu d’un type générique au type d’objet inséré dans le flux de sortie.

Syntaxe

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

Paramètres

CharType
Type qui représente le type de caractère pour l'objet ostreambuf_iterator. Cet argument est facultatif et sa valeur par défaut est .

Traits
Type qui représente le type de caractère pour l'objet ostreambuf_iterator. Cet argument est facultatif et sa valeur par défaut est .

Notes

La classe ostreambuf_iterator doit être conforme aux exigences d’un itérateur de sortie. Les algorithmes peuvent être enregistrés directement dans le flux de sortie à l'aide de . La classe fournit un itérateur de flux de bas niveau qui permet l'accès au flux d'E/S brut (sans mise en forme) sous la forme de caractères et permet de contourner la mise en mémoire tampon et les traductions de caractères associées aux itérateurs de flux de haut niveau.

Constructeurs

Constructeur Description
ostreambuf_iterator Construit un objet initialisé pour enregistrer des caractères dans le flux de sortie.

Typedefs

Nom de type Description
char_type Type qui fournit le type de caractère de .
ostream_type Type qui fournit le type de flux de .
streambuf_type Type qui fournit le type de flux de .
traits_type Type qui fournit le type de caractéristique de .

Fonctions Membre

Fonction membre Description
failed Teste l'échec d'une insertion dans la mémoire tampon du flux de sortie.

Opérateurs

Opérateur Description
operator* Opérateur de déreferencing utilisé pour implémenter l’expression d’itérateur de sortie.
operator++ Opérateur d'incrément non fonctionnel qui retourne un au même objet qu'il a traité avant que l'opération n'ait été appelée.
operator= L'opérateur insère un caractère dans la mémoire tampon du flux associé.

Spécifications

En-tête :

Espace de noms :

ostreambuf_iterator::char_type

Type qui fournit le type de caractère de .

typedef CharType char_type;

Notes

Le type est un synonyme du paramètre de modèle .

Exemple

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

Teste l'échec d'une insertion dans la mémoire tampon du flux de sortie.

bool failed() const throw();

Valeur de retour

si aucune insertion dans la mémoire tampon de flux de sortie n’a échoué précédemment ; sinon .

Notes

La fonction membre retourne si une tentative antérieure d’insérer un caractère dans la mémoire tampon du flux de sortie a échoué.

Exemple

// 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*

Opérateur de déreferencage nonfunctionnel utilisé pour implémenter l’expression d’itérateur de sortie.

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

Valeur de retour

Objet itérateur ostreambuf.

Notes

Cet opérateur fonctionne uniquement dans l’expression d’itérateur de sortie pour générer des caractères dans la mémoire tampon de flux. Appliqué à un , il retourne l’itérateur ; retourne .

Exemple

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

Opérateur d’incrément non fonctionnels qui retourne un caractère au même caractère qu’il a traité avant l’appel de l’opération.

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

Valeur de retour

Référence au caractère initialement traité ou à un objet défini par l’implémentation qui est convertible en .

Notes

L’opérateur est utilisé pour implémenter l’expression itérateur de sortie.

Exemple

// 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'opérateur insère un caractère dans la mémoire tampon du flux associé.

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

Paramètres

_Char
Caractère à insérer dans la mémoire tampon du flux.

Valeur de retour

Référence au caractère inséré dans la mémoire tampon du flux.

Notes

Opérateur d’affectation utilisé pour implémenter l’expression itérateur de sortie pour l’écriture dans un flux de sortie.

Exemple

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

Construit un objet initialisé pour enregistrer des caractères dans le flux de sortie.

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

Paramètres

strbuf
Objet de sortie streambuf utilisé pour initialiser le pointeur de mémoire tampon du flux de sortie.

Ostr
Objet de sortie stream pour initialiser le pointeur de mémoire tampon du flux de sortie.

Notes

Le premier constructeur initialise le pointeur de mémoire tampon de flux de sortie avec .

Le deuxième constructeur initialise le pointeur de mémoire tampon de flux de sortie avec *. Le pointeur stocké ne doit pas être un pointeur null.

Exemple

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

Type qui fournit le type de flux de .

typedef basicOstream<CharType, Traits> ostream_type;

Notes

Le type est un synonyme de

Exemple

Consultez un exemple de déclaration et d’utilisation .

ostreambuf_iterator::streambuf_type

Type qui fournit le type de flux de .

typedef basic_streambuf<CharType, Traits> streambuf_type;

Notes

Le type est un synonyme de , une classe de flux pour les mémoires tampons d’E/S qui devient lorsqu’elle est spécialisée dans le type de caractère .

Exemple

Consultez un exemple de déclaration et d’utilisation .

ostreambuf_iterator::traits_type

Type qui fournit le type de caractéristique de .

typedef Traits traits_type;

Notes

Le type est un synonyme du paramètre de modèle .

Exemple

// 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.

Voir aussi

Itérateur
Sécurité des threads dans la bibliothèque C++ Standard
Informations de référence sur la bibliothèque standard C++