流操作器
操作器可以以其他方式使用。例如:
-
os.width(n);等於os << std::setw(n);
is.width(n);等於is >> std::setw(n); -
os.precision(n);等於os << std::setprecision(n);
is.precision(n);等於is >> std::setprecision(n); -
os.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;
is.setf(std::ios_base::flag);等於is >> std::flag;os.unsetf(std::ios_base::flag);等於os << std::no ## flag;
is.unsetf(std::ios_base::flag);等於is >> std::no ## flag;(其中 ## - 是連線運算子 )
用於下一個
flags:boolalpha,showbase,showpoint,showpos,skipws,uppercase。 -
std::ios_base::basefield。
對於flags:dec,hex和oct:
-
os.setf(std::ios_base::flag, std::ios_base::basefield);等於os << std::flag;
is.setf(std::ios_base::flag, std::ios_base::basefield);等於is >> std::flag;
(1) -
str.unsetf(std::ios_base::flag, std::ios_base::basefield);等於str.setf(std::ios_base::fmtflags(0), std::ios_base::basefield);
(2)
std::ios_base::adjustfield。
對於flags:left,right和internal:
-
os.setf(std::ios_base::flag, std::ios_base::adjustfield);等於os << std::flag;
is.setf(std::ios_base::flag, std::ios_base::adjustfield);等於is >> std::flag;
(1) -
str.unsetf(std::ios_base::flag, std::ios_base::adjustfield);等於str.setf(std::ios_base::fmtflags(0), std::ios_base::adjustfield);
(2)
(1) 如果先前設定的相應欄位的標誌已被 unsetf 取消設定。
(2) 如果設定了 flag。
std::ios_base::floatfield。
-
os.setf(std::ios_base::flag, std::ios_base::floatfield);等於os << std::flag;
is.setf(std::ios_base::flag, std::ios_base::floatfield);等於is >> std::flag;為
flags:fixed和scientific。 -
os.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);等於os << std::defaultfloat;
is.setf(std::ios_base::fmtflags(0), std::ios_base::floatfield);等於is >> std::defaultfloat;
-
str.setf(std::ios_base::fmtflags(0), std::ios_base::flag);等於str.unsetf(std::ios_base::flag)為
flags:basefield,adjustfield,floatfield。 -
os.setf(mask)等於os << setiosflags(mask);
is.setf(mask)等於is >> setiosflags(mask);os.unsetf(mask)等於os << resetiosflags(mask);
is.unsetf(mask)等於is >> resetiosflags(mask);對於幾乎所有
mask的std::ios_base::fmtflags型別。