Partager via


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

La bibliothèque de classes iostream fournit un ensemble de macros permettant de créer des manipulateurs paramétrables. Les manipulateurs à un argument int ou long sont un cas particulier. Pour créer un manipulateur de flux de sortie qui accepte un seul ou un argument int (par setwexemple), vous devez utiliser la macro _Smanip, qui est définie dans <iomanip>.long Cet exemple définit un manipulateur fillblank qui insère un nombre spécifié d’espaces vides dans le flux :

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

Manipulateurs personnalisés avec arguments