Вы можете использовать стандартные манипуляторы из <iomanip>
, но не существует аккуратного манипулятора, который бы одновременно выполнял fill
и width
:
stream << std::setfill('0') << std::setw(2) << value;
Нетрудно написать собственный объект, который при вставке в поток выполнял обе функции:
stream << myfillandw( '0', 2 ) << value;
1010 * Е.Г. *
struct myfillandw
{
myfillandw( char f, int w )
: fill(f), width(w) {}
char fill;
int width;
};
std::ostream& operator<<( std::ostream& o, const myfillandw& a )
{
o.fill( a.fill );
o.width( a.width );
return o;
}