名前空間
変種
操作

std::lconv

提供: cppreference.com
< cpp‎ | locale
 
 
 
ヘッダ <clocale> で定義
struct lconv;

クラス std::lconv は C のロケールによって定義される数値および金額の書式化ルールを格納します。 この構造体のオブジェクトは std::localeconv で取得することができます。 std::lconv のメンバは char 型と char* 型の値です。 decimal_point を除くそれぞれの char* のメンバはヌル文字を指している (つまり空の C の文字列) かもしれません。 char 型のメンバはすべて非負の数値で、それらはいずれも対応する値が現在の C のロケールで利用可能でなければ CHAR_MAX になることがあります。

目次

[編集] メンバオブジェクト

[編集] 非金額数値の書式化パラメータ

char* decimal_point
小数点として使用される文字
(パブリックメンバオブジェクト)
char* thousands_sep
小数点の前の桁グループを区切るために使用される文字
(パブリックメンバオブジェクト)
char* grouping
要素が桁グループのサイズを表す文字列
(パブリックメンバオブジェクト)

[編集] 金額数値の書式化パラメータ

char* mon_decimal_point
小数点として使用される文字列
(パブリックメンバオブジェクト)
char* mon_thousands_sep
小数点の前の桁グループを区切るために使用される文字
(パブリックメンバオブジェクト)
char* mon_grouping
要素が桁グループのサイズを表す文字列
(パブリックメンバオブジェクト)
char* positive_sign
非負の金額を表すために使用される文字列
(パブリックメンバオブジェクト)
char* negative_sign
負の金額を表すために使用される文字列
(パブリックメンバオブジェクト)

[編集] 地域の金額数値の書式化パラメータ

char* currency_symbol
現在の C のロケールにおいて通貨のために使用される記号
(パブリックメンバオブジェクト)
char frac_digits
金額を表示するための小数点以下の桁数
(パブリックメンバオブジェクト)
char p_cs_precedes
currency_symbol を非負の値の前に置く場合は 1、後に置く場合は 0
(パブリックメンバオブジェクト)
char n_cs_precedes
currency_symbol を負の値の前に置く場合は 1、後に置く場合は 0
(パブリックメンバオブジェクト)
char p_sep_by_space
currency_symbol, positive_sign および非負の金額値の区切りを示します
(パブリックメンバオブジェクト)
char n_sep_by_space
currency_symbol, negative_sign および負の金額値の区切りを示します
(パブリックメンバオブジェクト)
char p_sign_posn
非負の金額値における positive_sign の位置を示します
(パブリックメンバオブジェクト)
char n_sign_posn
負の金額値における negative_sign の位置を示します
(パブリックメンバオブジェクト)

[編集] 国際的な金額数値の書式化パラメータ

char* int_curr_symbol
現在の C のロケールにおいて国際的な通貨名として使用される文字列
(パブリックメンバオブジェクト)
char int_frac_digits
国際的な金額を表示するための小数点以下の桁数
(パブリックメンバオブジェクト)
char int_p_cs_precedes
(C++11)
int_curr_symbol を非負の国際的な金額値の前に置く場合は 1、後に置く場合は 0
(パブリックメンバオブジェクト)
char int_n_cs_precedes
(C++11)
int_curr_symbol を負の国際的な金額値の前に置く場合は 1、後に置く場合は 0
(パブリックメンバオブジェクト)
char int_p_sep_by_space
(C++11)
int_curr_symbol, positive_sign および非負の国際的な金額値の区切りを示します
(パブリックメンバオブジェクト)
char int_n_sep_by_space
(C++11)
int_curr_symbol, negative_sign および負の国際的な金額値の区切りを示します
(パブリックメンバオブジェクト)
char int_p_sign_posn
(C++11)
非負の国際的な金額値における positive_sign の位置を示します
(パブリックメンバオブジェクト)
char int_n_sign_posn
(C++11)
負の国際的な金額値における negative_sign の位置を示します
(パブリックメンバオブジェクト)

grouping および mon_grouping の指す C の文字列の文字はその数値的な値に従って解釈されます。 終端の '\0' に遭遇したとき、最後に見た値は残りの桁に対して繰り返すと仮定されます。 CHAR_MAX に遭遇したとき、それ以降の桁はグループ化されません。 一般的な3桁ごとのグループ化は "\003" です。

p_sep_by_space, n_sep_by_space, int_p_sep_by_space, int_n_sep_by_space の値は以下のように解釈されます。

0 通貨記号と値を区切る空白はありません
1 符号は通貨記号に付き、値は空白で区切られます
2 符号は値に付き、通貨記号は空白で区切られます

p_sign_posn, n_sign_posn, int_p_sign_posn, int_n_sign_posn の値は以下のように解釈されます。

0 符号を表すために値と通貨記号の周りの括弧が使用されます
1 値と通貨記号の前に符号が付きます
2 値と通貨記号の後に符号が付きます
3 通貨記号の前に符号が付きます
4 通貨記号の後に符号が付きます

[編集]

#include <clocale>
#include <iostream>
 
int main()
{
    std::setlocale(LC_ALL, "ja_JP.UTF-8");
    std::lconv* lc = std::localeconv();
    std::cout << "Japanese currency symbol: " << lc->currency_symbol
              << '(' << lc->int_curr_symbol << ")\n";
}

出力:

Japanese currency symbol: ¥(JPY )

[編集] 関連項目

現在のロケールの数値および金額の書式の詳細を問い合わせます
(関数) [edit]
数値の区切り文字の規則を定義します
(クラステンプレート) [edit]
std::money_get および std::money_put で使用される金額の書式パラメータを定義します
(クラステンプレート) [edit]