Ausgabestreammanipulatoren mit einem Argument (int oder long)
Die iostream-Klassenbibliothek enthält eine Reihe von Makros zum Erstellen von parametrisierter Manipulatoren. Manipulatoren mit einem einzigen int
- oder long
-Argument sind ein Sonderfall. Zum Erstellen eines Ausgabedatenstrommanips, der ein einzelnes int
Argument long
akzeptiert (z setw
. B.), müssen Sie das _Smanip Makro verwenden, das in <iomanip> definiert ist. Dieses Beispiel definiert einen fillblank
-Manipulator, der eine angegebene Anzahl von Leerzeichen in den Datenstrom eingefügt:
Beispiel
// 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";
}
Siehe auch
Custom Manipulators with Arguments(Benutzerdefinierte Manipulatoren mit Argumenten)