流操作器
操作器可以以其他方式使用。例如:
-
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;
(其中 ## - 是連線運算子 )
用於下一個
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;
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
。
對於flag
s: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;
為
flag
s: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)
為
flag
s: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
型別。