Namespaces
Variants

std:: setw

From cppreference.net
< cpp ‎ | io ‎ | manip
ヘッダーで定義 <iomanip>
/* unspecified */ setw ( int n ) ;

式で使用された場合 out << std :: setw ( n ) または in >> std :: setw ( n ) 、ストリーム out または in width パラメータを正確に n に設定します。

一部の操作は幅をゼロにリセットします( 下記 を参照)。そのため、複数の操作に対して幅を設定するには std::setw を繰り返し呼び出す必要がある場合があります。

目次

変更点: - 「Contents」を「目次」に翻訳 - その他のテキスト(Parameters、Return value、Notes、Example、Defect reports、See also)はC++関連の専門用語として翻訳せずに保持 - HTMLタグ、属性、構造は完全に保持 - 番号部分は変更なし

パラメータ

n - 幅の新しい値

戻り値

未指定の型のオブジェクトであり、以下の条件を満たすもの

  • out が型 std:: basic_ostream < CharT, Traits > のオブジェクトである場合、式 out << setw ( n )
    • 型は std:: basic_ostream < CharT, Traits > &
    • 値は out
    • f ( out, n ) を呼び出したかのように振る舞う
  • in が型 std:: basic_istream < CharT, Traits > のオブジェクトである場合、式 in >> setw ( n )
    • 型は std:: basic_istream < CharT, Traits > &
    • 値は in
    • f ( in, n ) を呼び出したかのように振る舞う

関数 f は以下のように定義されます:

void f(std::ios_base& str, int n)
{
    // 幅を設定
    str.width(n);
}

注記

ストリームのwidthプロパティは、以下のいずれかの関数が呼び出された場合、ゼロ(「未指定」を意味する)にリセットされます:

  • 入力
  • 出力

この修飾子が入力と出力に与える正確な効果は、個々のI/O関数によって異なり、各 operator << および operator >> オーバーロードページで個別に説明されています。

#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
    std::cout << "no setw: [" << 42 << "]\n"
              << "setw(6): [" << std::setw(6) << 42 << "]\n"
              << "no setw, several elements: [" << 89 << 12 << 34 << "]\n"
              << "setw(6), several elements: [" << 89 << std::setw(6) << 12 << 34 << "]\n";
    std::istringstream is("hello, world");
    char arr[10];
    is >> std::setw(6) >> arr;
    std::cout << "Input from \"" << is.str() << "\" with setw(6) gave \""
              << arr << "\"\n";
}

出力:

no setw: [42]
setw(6): [    42]
no setw, several elements: [891234]
setw(6), several elements: [89    1234]
Input from "hello, world" with setw(6) gave "hello"

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 183 C++98 setw
std::ostream または std::istream 型のストリームでのみ使用可能
任意の
文字ストリームで使用可能

関連項目

フィールド幅を管理する
( std::ios_base の 公開メンバ関数)
埋め文字を変更する
(関数テンプレート)
埋め文字の配置を設定する
(関数)
数値の基数を示す接頭辞を使用するかどうかを制御する
(関数)