Stream manipulators
suggest changeManipulators are special helper functions that help controlling input and output streams using operator >> or operator <<.
They all can be included by #include <iomanip>.
Remarks
Manipulators can be used in many ways. For example:
-
os.width(n);equals toos << std::setw(n); is.width(n);equals tois >> std::setw(n); -
os.precision(n);equals toos << std::setprecision(n); is.precision(n);equals tois >> std::setprecision(n); -
os.setfill(c);equals toos << std::setfill(c); -
str >> std::setbase(base);orstr << std::setbase(base);equals tostr.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);equals toos << std::flag; is.setf(std::ios_base::flag);equals tois >> std::flag; os.unsetf(std::ios_base::flag);equals toos << std::no ## flag; is.unsetf(std::ios_base::flag);equals tois >> std::no ## flag;(where ## - is concatenation operator)
for nextflags:boolalpha,showbase,showpoint,showpos,skipws,uppercase. -
std::ios_base::basefield. Forflags:dec,hexandoct:os.setf(std::ios_base::flag, std::ios_base::basefield);equals toos << std::flag; is.setf(std::ios_base::flag, std::ios_base::basefield);equals tois >> std::flag;( 1 )str.unsetf(std::ios_base::flag, std::ios_base::basefield);equals to
str.setf(std::ios_base::fmtflags(0), std::ios_base::basefield);( 2 )
-
std::ios_base::adjustfield. Forflags:left,rightandinternal:os.setf(std::ios_base::flag, std::ios_base::adjustfield);equals toos << std::flag; is.setf(std::ios_base::flag, std::ios_base::adjustfield);equals tois >> std::flag;( 1 )str.unsetf(std::ios_base::flag, std::ios_base::adjustfield);equals tostr.setf(std::ios_base::fmtflags(0), std::ios_base::adjustfield);( 2 )
( 1 ) If flag of corresponding field previously set have already unset by
unsetf. ( 2 ) Ifflagis set. -
std::ios_base::floatfield.os.setf(std::ios_base::flag, std::ios_base::floatfield);equals toos << std::flag; is.setf(std::ios_base::flag, std::ios_base::floatfield);equals tois >> std::flag;
for
flags:fixedandscientific.os.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);equals toos << std::defaultfloat; is.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);equals tois >> std::defaultfloat;
-
str.setf(std::ios_base::fmtflags(0), std::ios_base::flag);equals tostr.unsetf(std::ios_base::flag)forflags:basefield,adjustfield,floatfield. -
os.setf(mask)equals toos << setiosflags(mask);
is.setf(mask)equals tois >> setiosflags(mask); os.unsetf(mask)equals toos << resetiosflags(mask);
is.unsetf(mask)equals tois >> resetiosflags(mask);
For almost all mask of std::ios_base::fmtflags type.