std:: setw
|
ヘッダーで定義
<iomanip>
|
||
|
/* unspecified */
setw
(
int
n
)
;
|
||
式で使用された場合
out
<<
std
::
setw
(
n
)
または
in
>>
std
::
setw
(
n
)
、ストリーム
out
または
in
の
width
パラメータを正確に
n
に設定します。
一部の操作は幅をゼロにリセットします(
下記
を参照)。そのため、複数の操作に対して幅を設定するには
std::setw
を繰り返し呼び出す必要がある場合があります。
目次 |
パラメータ
| 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プロパティは、以下のいずれかの関数が呼び出された場合、ゼロ(「未指定」を意味する)にリセットされます:
- 入力
- 出力
-
- 算術型または void ポインタを受け取る basic_ostream::operator<<() のオーバーロード ( num_put::put() のステージ3時点)
- operator<<(basic_ostream&, char) および operator<<(basic_ostream&, char*)
- operator<<(basic_ostream&, basic_string&)
- std::put_money ( money_put::put() 内部)
- std::quoted (出力ストリームで使用される場合)
この修飾子が入力と出力に与える正確な効果は、個々の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
の
公開メンバ関数)
|
|
|
埋め文字を変更する
(関数テンプレート) |
|
|
埋め文字の配置を設定する
(関数) |
|
|
数値の基数を示す接頭辞を使用するかどうかを制御する
(関数) |