std::ios_base:: setf
From cppreference.net
|
fmtflags setf
(
fmtflags flags
)
;
|
(1) | |
|
fmtflags setf
(
fmtflags flags, fmtflags mask
)
;
|
(2) | |
書式設定フラグを指定された設定にセットします。
1)
識別されたフォーマットフラグを
flags
で設定します。実質的に以下の操作が実行されます
fl
=
fl
|
flags
。ここで
fl
は内部フォーマットフラグの状態を定義します。
2)
書式フラグを
mask
で指定されたビットをクリアし、クリアされたフラグを
flags
で指定された値に設定する。実質的に以下の操作が実行される
fl
=
(
fl
&
~mask
)
|
(
flags
&
mask
)
ここで
fl
は内部書式フラグの状態を定義する。
目次 |
パラメータ
| flags, mask | - | 新しい書式設定。 mask は変更可能なフラグを定義し、 flags は変更対象フラグのうち設定すべきフラグを定義する(他のフラグはクリアされる)。両パラメータは 書式フラグ 定数の組み合わせを指定可能 |
フォーマットフラグ
| 定数 | 説明 |
| dec | 整数I/Oに10進基数を使用: std::dec を参照 |
| oct | 整数I/Oに8進基数を使用: std::oct を参照 |
| hex | 整数I/Oに16進基数を使用: std::hex を参照 |
| basefield | dec | oct | hex . マスキング操作に有用 |
| left | 左寄せ(右側に埋め文字を追加): std::left を参照 |
| right | 右寄せ(左側に埋め文字を追加): std::right を参照 |
| internal | 内部調整(内部指定点に埋め文字を追加): std::internal を参照 |
| adjustfield | left | right | internal . マスキング操作に有用 |
| scientific | 浮動小数点型を指数表記で生成、 fixed と組み合わせた場合は16進表記: std::scientific を参照 |
| fixed | 浮動小数点型を固定小数点表記で生成、 scientific と組み合わせた場合は16進表記: std::fixed を参照 |
| floatfield | scientific | fixed . マスキング操作に有用 |
| boolalpha | bool 型を英数字形式で挿入・抽出: std::boolalpha を参照 |
| showbase | 整数出力で数値基数を示す接頭辞を生成、通貨I/Oで通貨指示子を要求: std::showbase を参照 |
| showpoint | 浮動小数点数出力で無条件に小数点文字を生成: std::showpoint を参照 |
| showpos | 非負数値出力で + 文字を生成: std::showpos を参照 |
| skipws | 特定の入力操作前に先頭の空白をスキップ: std::skipws を参照 |
| unitbuf | 各出力操作後に出力をフラッシュ: std::unitbuf を参照 |
| uppercase | 特定の出力操作で特定の小文字を大文字に置換: std::uppercase を参照 |
戻り値
関数呼び出し前の書式フラグ。
例
このコードを実行
#include <iomanip> #include <iostream> #include <numbers> int main() { const double PI = std::numbers::pi; const int WIDTH = 15; std::cout.setf(std::ios::right); // 同等: cout << right; std::cout << std::setw(WIDTH / 2) << "radius" << std::setw(WIDTH) << "circumference" << '\n'; std::cout.setf(std::ios::fixed); // 同等: cout << fixed; for (double radius = 1; radius <= 6; radius += 0.5) std::cout << std::setprecision(1) << std::setw(WIDTH / 2) << radius << std::setprecision(2) << std::setw(WIDTH) << (2 * PI * radius) << '\n'; }
出力:
radius circumference
1.0 6.28
1.5 9.42
2.0 12.57
2.5 15.71
3.0 18.85
3.5 21.99
4.0 25.13
4.5 28.27
5.0 31.42
5.5 34.56
6.0 37.70
関連項目
|
フォーマットフラグを管理する
(public member function) |
|
|
特定のフォーマットフラグをクリアする
(public member function) |