C++ ios_base fmtflags



描述

此型別用作成員函式 flags、setf 和 unsetf 的引數和/或返回值。

宣告

以下是 ios_base::fmtflags 的宣告。

std::ios_base::fmtflags ff;

這些函式傳遞和檢索的值可以是以下成員常量的任何有效組合,如下所示:

欄位 成員常量 設定時的效果
獨立標誌 boolalpha 將布林元素讀/寫為字母字串(truefalse)。
showbase 寫入以其相應的數字基數字首開頭的整數值。
showpoint 寫入始終包含小數點的浮點值。
showpos 寫入非負數值前加正號 (+) 。
skipws 在某些輸入操作中跳過前導空格。
unitbuf 每次插入操作後重新整理輸出。
uppercase 在某些插入操作中使用大寫字母替換小寫字母。

數字基數

(basefield)

dec 使用十進位制格式讀/寫整數值。
hex 使用十六進位制格式讀/寫整數值。
oct 使用八進位制格式讀/寫整數值。

浮點格式

(floatfield)

fixed 以定點表示法寫入浮點值。
scientific 以科學計數法寫入浮點值。

調整

(adjustfield)

internal 輸出透過在指定的內部點插入填充字元來填充到欄位寬度
left 輸出透過在末尾附加填充字元來填充到欄位寬度
right 輸出透過在開頭插入填充字元來填充到欄位寬度

還可以使用三個額外的位掩碼常量,這些常量由每三個選擇性標誌組的值組合而成,如下所示。

標誌值 等價於
adjustfield left | right | internal
basefield dec | oct | hex
floatfield scientific | fixed

可以使用 OR 位運算子 (|) 將這些常量的值組合成單個 fmtflags 值。

示例

以下示例顯示了 ios_base::fmtflags 的用法。

#include <iostream>

int main () {

   std::cout.setf (std::ios_base::hex , std::ios_base::basefield);
   std::cout.setf (std::ios_base::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::ios::hex , std::ios::basefield);
   std::cout.setf (std::ios::showbase);
   std::cout << 100 << '\n';

   std::cout.setf (std::cout.hex , std::cout.basefield);
   std::cout.setf (std::cout.showbase);
   std::cout << 100 << '\n';

   std::ios_base::fmtflags ff;
   ff = std::cout.flags();
   ff &= ~std::cout.basefield;   
   ff |= std::cout.hex;          
   ff |= std::cout.showbase;     
   std::cout.flags(ff);
   std::cout << 100 << '\n';

   std::cout << std::hex << std::showbase << 100 << '\n';

   return 0;
}

讓我們編譯並執行上述程式,這將產生以下結果:

0x64
0x64
0x64
0x64
0x64
ios.htm
廣告