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;
}