Partager via


Manipulateurs de flux de sortie à un argument (int ou long)

La bibliothèque de classes iostream fournit un ensemble de macros pour créer les manipulateurs paramétrées.les manipulateurs avec int ou un argument unique d' long sont un cas particulier.Pour créer un manipulateur de flux de sortie qui accepte int unique ou argument d' long (comme setw), vous devez utiliser la macro de _Smanip, qui est définie dans <iomanip> .Cet exemple définit un manipulateur d' fillblank qui insère un nombre spécifié d'espaces dans le flux de données :

Exemple

// output_stream_manip.cpp
// compile with: /GR /EHsc
#include <iostream>
#include <iomanip>
using namespace std;

void fb( ios_base& os, int l )
{
   ostream *pos = dynamic_cast<ostream*>(&os);
   if (pos)
   {
      for( int i=0; i < l; i++ )
      (*pos) << ' ';
   };
}

_Smanip<int>
   __cdecl fillblank(int no)
   {   
   return (_Smanip<int>(&fb, no));
   }

int main( )
{
   cout << "10 blanks follow" << fillblank( 10 ) << ".\n";
}

Voir aussi

Référence

Manipulateurs personnalisés avec des arguments