Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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++