Заголовок <iomanip> определяет несколько функций, которые поддерживают экстракторы и средства вставки, которые изменяют информацию, поддерживаемую классом ios_base и его производными классами.
unspecified resetiosflags(ios_base::fmtflags mask);
Returns: Объект неопределенного типа, такой, что если out это объект типа, basic_ostream<charT, traits> тогда выражение out << resetiosflags(mask) ведет себя так, как если бы оно было вызвано f(out, mask), или если in это объект типа, basic_istream<charT, traits> тогда выражение in >> resetiosflags(mask) ведет себя так, как если бы оно было вызвано f(in, mask), где функция f определяется как:326
void f(ios_base& str, ios_base::fmtflags mask) {
// reset specified flags
str.setf(ios_base::fmtflags(0), mask);
}
Выражение out << resetiosflags(mask) должно иметь тип basic_ostream<charT, traits>& и значение out. Выражение in >> resetiosflags(mask) должно иметь тип basic_istream<charT, traits>& и значение in.
unspecified setiosflags(ios_base::fmtflags mask);
Returns: Объект неопределенного типа, такой, что если out это объект типа, basic_ostream<charT, traits> тогда выражение out << setiosflags(mask) ведет себя так, как если бы оно было вызвано f(out, mask), или если in это объект типа, basic_istream<charT, traits> тогда выражение in >> setiosflags(mask) ведет себя так, как если бы оно было вызвано f(in, mask), где функция f определяется как:
void f(ios_base& str, ios_base::fmtflags mask) {
// set specified flags
str.setf(mask);
}
Выражение
out << setiosflags(mask)
должно иметь тип
basic_ostream<charT, traits>&
и значение
out. Выражение
in >> setiosflags(mask)
должно иметь тип
basic_istream<charT,
traits>&
и значение
in.
unspecified setbase(int base);
Returns: Объект неопределенного типа, такой, что если out это объект типа, basic_ostream<charT, traits> тогда выражение out << setbase(base) ведет себя так, как если бы оно было вызвано f(out, base), или если in это объект типа, basic_istream<charT, traits> тогда выражение in >> setbase(base) ведет себя так, как если бы оно было вызвано f(in, base), где функция f определяется как:
void f(ios_base& str, int base) {
// set basefield
str.setf(base == 8 ? ios_base::oct :
base == 10 ? ios_base::dec :
base == 16 ? ios_base::hex :
ios_base::fmtflags(0), ios_base::basefield);
}
Выражение out << setbase(base) должно иметь тип basic_ostream<charT, traits>& и значение out. Выражение in >> setbase(base) должно иметь тип basic_istream<charT, traits>& и значение in.
unspecified setfill(char_type c);
Returns: Объект неопределенного типа, такой, что if out является объектом типа basic_ostream<charT, traits> и c имеет тип, charT тогда выражение out << setfill(c) ведет себя так, как если бы оно было вызвано f(out, c), где функция f определяется как:
template<class charT, class traits>
void f(basic_ios<charT, traits>& str, charT c) {
// set fill character
str.fill(c);
}
Выражение out << setfill(c) должно иметь тип basic_ostream<charT, traits>& и значение out.
unspecified setprecision(int n);
Returns: Объект неопределенного типа, такой, что если out это объект типа, basic_ostream<charT, traits> тогда выражение out << setprecision(n) ведет себя так, как если бы оно было вызвано f(out, n), или если in это объект типа, basic_istream<charT, traits> тогда выражение in >> setprecision(n) ведет себя так, как если бы оно было вызвано f(in, n), где функция f определяется как:
void f(ios_base& str, int n) {
// set precision
str.precision(n);
}
Выражение out << setprecision(n) должно иметь тип basic_ostream<charT, traits>& и значение out. Выражение in >> setprecision(n) должно иметь тип basic_istream<charT, traits>& и значение in.
unspecified setw(int n);
Returns: Объект неопределенного типа, такой, что если out является экземпляром, basic_ostream<charT, traits> тогда выражение out << setw(n) ведет себя так, как если бы оно было вызвано f(out, n), или если in это объект типа, basic_istream<charT, traits> то выражение in >> setw(n) ведет себя так, как если бы оно было вызвано f(in, n), где функция f определяется как:
void f(ios_base& str, int n) {
// set width
str.width(n);
}
Выражение out << setw(n) должно иметь тип basic_ostream<charT, traits>& и значение out. Выражение in >> setw(n) должно иметь тип basic_istream<charT, traits>& и значение in.
Выражение cin >> resetiosflags(ios_base::skipws) очищается ios_base::skipws во флагах формата, хранящихся в basic_istream<charT, traits> объекте cin (так же, как cin >> noskipws), а выражение cout << resetiosflags(ios_base::showbase) очищается ios_base::showbase во флагах формата, хранящихся в basic_ostream<charT, traits> объекте cout (как cout << noshowbase).