具有單一引數 (int 或 long) 的輸出資料流操作工具
iostream 類別程式庫提供一組巨集,可用來建立參數化的操作工具。 具有單一 int
或 long
引數的操作工具是特殊案例。 若要建立接受單int
一或long
自變數的輸出數據流操作工具(例如 setw
),您必須使用iomanip>中<定義的_Smanip巨集。 本範例定義 fillblank
操作工具,它會將指定的空格數目插入資料流中:
範例
// 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";
}