名前空間
変種
操作

std::ios_base::setf

提供: 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 は変更されるフラグのうちのセットされるべきフラグを定義します (他のフラグはクリアされます)。 どちらの引数も以下の定数を組み合わせることができます。
定数 説明
dec 整数の入出力に対して10進数を使用します。 std::dec を参照してください
oct 整数の入出力に対して8進数を使用します。 std::oct を参照してください
hex 整数の入出力に対して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 整数の出力に対して数値の基数を表す接頭辞を生成し、金額の入出力に対して金額指示子を要求します。 std::showbase を参照してください
showpoint 浮動小数点数の出力に対して小数点を無条件に生成します。 std::showpoint を参照してください
showpos 非負の数値の出力に対して + 文字を出力します。 std::showpos を参照してください
skipws 特定の入力操作の前に先行するホワイトスペースをスキップします。 std::skipws を参照してください
unitbuf 各出力操作の後に出力をフラッシュします。 std::unitbuf を参照してください
uppercase 特定の出力操作で特定の小文字を同等な大文字に置き換えます。 std::uppercase を参照してください


[編集] 戻り値

関数を呼ぶ前の書式フラグ。

[編集]

#include <iostream>
#include <iomanip>
 
const double PI = 3.1415926535;
 
int main() 
{
    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);
    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

[編集] 関連項目

書式フラグを管理します
(パブリックメンバ関数) [edit]
特定の書式フラグをクリアします
(パブリックメンバ関数) [edit]