stdsetiosflags
當在表示式 out << setiosflags(mask)
或 in >> setiosflags(mask)
中使用時,將流的所有格式標誌設定為由掩碼指定的輸出或輸入。
所有 std::ios_base::fmtflags
的列表:
dec
- 對整數 I / O 使用十進位制基數oct
- 對整數 I / O 使用八進位制基數hex
- 對整數 I / O 使用十六進位制基數basefield
-dec|oct|hex|0
對掩碼操作很有用left
- 左調整(在右邊新增填充字元)right
- 右調整(在左側新增填充字元)internal
- 內部調整(將填充字元新增到內部指定點)adjustfield
-left|right|internal
。對掩碼操作很有用scientific
- 使用科學記數法生成浮點型別,或者如果與固定符號結合使用十六進位制表示法fixed
- 使用固定表示法生成浮點型別,如果與科學結合使用,則生成十六進位制表示法floatfield
-scientific|fixed|(scientific|fixed)|0
。對掩碼操作很有用boolalpha
- 以字母數字格式插入和提取bool
型別showbase
- 生成一個字首,指示整數輸出的數字基數,需要貨幣 I / O 中的貨幣指標showpoint
- 無條件地為浮點數輸出生成小數點字元showpos
- 為非負數字輸出生成+
字元skipws
- 在某些輸入操作之前跳過前導空格unitbuf
在每次輸出操作後重新整理輸出uppercase
- 在某些輸出輸出操作中將某些小寫字母替換為大寫字母
操作器示例:
#include <iostream>
#include <string>
#include<iomanip>
int main()
{
int l_iTemp = 47;
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::oct)<<l_iTemp<<std::endl;
//output: 57
std::cout<< std::resetiosflags(std::ios_base::basefield);
std::cout<<std::setiosflags( std::ios_base::hex)<<l_iTemp<<std::endl;
//output: 2f
std::cout<<std::setiosflags( std::ios_base::uppercase)<<l_iTemp<<std::endl;
//output 2F
std::cout<<std::setfill('0')<<std::setw(12);
std::cout<<std::resetiosflags(std::ios_base::uppercase);
std::cout<<std::setiosflags( std::ios_base::right)<<l_iTemp<<std::endl;
//output: 00000000002f
std::cout<<std::resetiosflags(std::ios_base::basefield|std::ios_base::adjustfield);
std::cout<<std::setfill('.')<<std::setw(10);
std::cout<<std::setiosflags( std::ios_base::left)<<l_iTemp<<std::endl;
//output: 47........
std::cout<<std::resetiosflags(std::ios_base::adjustfield)<<std::setfill('#');
std::cout<<std::setiosflags(std::ios_base::internal|std::ios_base::showpos);
std::cout<<std::setw(10)<<l_iTemp<<std::endl;
//output +#######47
double l_dTemp = -1.2;
double pi = 3.14159265359;
std::cout<<pi<<" "<<l_dTemp<<std::endl;
//output +3.14159 -1.2
std::cout<<std::setiosflags(std::ios_base::showpoint)<<l_dTemp<<std::endl;
//output -1.20000
std::cout<<setiosflags(std::ios_base::scientific)<<pi<<std::endl;
//output: +3.141593e+00
std::cout<<std::resetiosflags(std::ios_base::floatfield);
std::cout<<setiosflags(std::ios_base::fixed)<<pi<<std::endl;
//output: +3.141593
bool b = true;
std::cout<<std::setiosflags(std::ios_base::unitbuf|std::ios_base::boolalpha)<<b;
//output: true
return 0;
}