マニピュレータは、 operator >>
またはoperator <<
を使用して入力ストリームと出力ストリームを制御するのに役立つ特別なヘルパー関数です。
それらは#include <iomanip>
によってすべて含めることができます。
マニピュレータは他の方法で使用することができます。例えば:
os.width(n);
os << std::setw(n);
と等しくなりos << std::setw(n);
is.width(n);
is >> std::setw(n);
と等しくなりis >> std::setw(n);
os.precision(n);
os << std::setprecision(n);
と等しくなりos << std::setprecision(n);
is.precision(n);
is >> std::setprecision(n);
と等しくなりis >> std::setprecision(n);
os.setfill(c);
os << std::setfill(c);
と等しくなりos << std::setfill(c);
str >> std::setbase(base);
またはstr << std::setbase(base);
等しいstr.setf(base == 8 ? std::ios_base::oct :
base == 10 ? std::ios_base::dec :
base == 16 ? std::ios_base::hex :
std::ios_base::fmtflags(0),
std::ios_base::basefield);
os.setf(std::ios_base::flag);
os << std::flag;
と等しくなりos << std::flag;
is.setf(std::ios_base::flag);
is >> std::flag;
等しくなりis >> std::flag;
os.unsetf(std::ios_base::flag);
os << std::no ## flag;
と等しくなりos << std::no ## flag;
is.unsetf(std::ios_base::flag);
is >> std::no ## flag;
と等しいis >> std::no ## flag;
flag
s: boolalpha
、 showbase
、 showpoint
、 showpos
、 skipws
、 uppercase
。 std::ios_base::basefield
。 flag
sの場合: dec
、 hex
、 oct
: os.setf(std::ios_base::flag, std::ios_base::basefield);
os << std::flag;
と等しくなりos << std::flag;
is.setf(std::ios_base::flag, std::ios_base::basefield);
is >> std::flag;
等しくなりis >> std::flag;
str.unsetf(std::ios_base::flag, std::ios_base::basefield);
str.setf(std::ios_base::fmtflags(0), std::ios_base::basefield);
std::ios_base::adjustfield
。 flag
sの場合: left
、 right
、 internal
: os.setf(std::ios_base::flag, std::ios_base::adjustfield);
os << std::flag;
と等しくなりos << std::flag;
is.setf(std::ios_base::flag, std::ios_base::adjustfield);
is >> std::flag;
等しくなりis >> std::flag;
str.unsetf(std::ios_base::flag, std::ios_base::adjustfield);
str.setf(std::ios_base::fmtflags(0), std::ios_base::adjustfield);
(1)既に設定されている対応するフィールドのフラグがunsetf
によって既に設定解除されているunsetf
。
(2) flag
がセットされている場合。
std::ios_base::floatfield
。 os.setf(std::ios_base::flag, std::ios_base::floatfield);
os << std::flag;
と等しくなりos << std::flag;
is.setf(std::ios_base::flag, std::ios_base::floatfield);
is >> std::flag;
等しくなりis >> std::flag;
flag
のために: fixed
、 scientific
。 os.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);
os << std::defaultfloat;
と等しくなりos << std::defaultfloat;
is.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);
is >> std::defaultfloat;
と等しいis >> std::defaultfloat;
str.setf(std::ios_base::fmtflags(0), std::ios_base::flag);
str.unsetf(std::ios_base::flag)
と同じstr.unsetf(std::ios_base::flag)
flag
sの場合: basefield
、 adjustfield
、 floatfield
os.setf(mask)
は、 os << setiosflags(mask);
と同じos << setiosflags(mask);
is.setf(mask)
は次のものis >> setiosflags(mask);
同じis >> setiosflags(mask);
os.unsetf(mask)
はos << resetiosflags(mask);
os.unsetf(mask)
と等しくなりos << resetiosflags(mask);
is.unsetf(mask)
は次のようになりis >> resetiosflags(mask);
std::ios_base::fmtflags
mask
です。