Udostępnij za pośrednictwem


Manipulatory strumieni wyjściowych z jednym argumentem (int lub long)

Biblioteka klas iostream zawiera zestaw makr do tworzenia manipulatory sparametryzowana.Manipulatory za pomocą jednego int lub long argument stanowią szczególny przypadek.Aby utworzyć manipulator strumienia wyjściowego, który akceptuje pojedynczy int lub long argument (takich jak setw), należy użyć makra _Smanip, która jest zdefiniowana w <iomanip>.W tym przykładzie definiuje fillblank manipulator, który wstawia określoną liczbę spacji do strumienia:

Przykład

// 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";
}

Zobacz też

Informacje

Niestandardowe manipulatory z argumentami