名前空間
変種
操作

std::ios_base::setf

From cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
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 は変更されるフラグのうちどれを設定すべきかを定義します(他はクリアされます)。両方のパラメータは、フォーマットフラグ定数の組み合わせにすることができます。
[編集] フォーマットフラグ
Constant 説明
10進 整数I/Oには10進数を指定します。詳細はstd::decを参照してください。
8進 整数I/Oには8進数を指定します。詳細はstd::octを参照してください。
16進 整数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); // equivalent: cout << right;
    std::cout << std::setw(WIDTH / 2) << "radius"
              << std::setw(WIDTH) << "circumference" << '\n';
 
    std::cout.setf(std::ios::fixed); // equivalent: 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 メンバ関数) [編集]
特定の書式フラグをクリアする
(public メンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)