Namespaces
Variants

std:: lconv

From cppreference.net
定義済みヘッダー <clocale>
struct lconv ;

std::lconv クラスは、Cロケールで定義される数値および通貨の書式設定ルールを含みます。この構造体のオブジェクトは std::localeconv で取得できます。 std::lconv のメンバーは char 型と char * 型の値です。 decimal_point を除く各 char * メンバーは、ヌル文字(空のC文字列)を指している可能性があります。 char 型のメンバーはすべて非負の数値であり、現在のCロケールで対応する値が利用できない場合は、いずれも CHAR_MAX となる可能性があります。

目次

メンバーオブジェクト

非通貨数値書式設定パラメータ

char* decimal_point
小数点として使用される文字
(public member object)
char* thousands_sep
小数点の前で数字のグループを区切るために使用される文字
(public member object)
char* grouping
要素が数字グループのサイズを示す文字列
(public member object)

通貨数値書式パラメータ

char* mon_decimal_point
小数点として使用される文字
(public member object)
char* mon_thousands_sep
小数点の前の数字グループを区切るために使用される文字
(public member object)
char* mon_grouping
要素が数字グループのサイズを示す文字列
(public member object)
char* positive_sign
非負の通貨量を示すために使用される文字列
(public member object)
char* negative_sign
負の通貨量を示すために使用される文字列
(public member object)

ローカル通貨数値書式設定パラメータ

char* currency_symbol
現在のCロケールで使用される通貨記号
(public member object)
char frac_digits
通貨数量の表示で小数点以下に表示する桁数
(public member object)
char p_cs_precedes
1 非負の値の前にcurrency_symbolが配置される場合は1、 0 後ろの場合は0
(public member object)
char n_cs_precedes
1 負の値の前にcurrency_symbolが配置される場合は1、 0 後ろの場合は0
(public member object)
char p_sep_by_space
currency_symbol positive_sign と非負の通貨値の間の区切りを示す
(public member object)
char n_sep_by_space
currency_symbol negative_sign と負の通貨値の間の区切りを示す
(public member object)
char p_sign_posn
非負の通貨値における positive_sign の位置を示す
(public member object)
char n_sign_posn
負の通貨値における negative_sign の位置を示す
(public member object)

国際通貨数値書式設定パラメータ

char* int_curr_symbol
現在のCロケールで国際通貨名として使用される文字列
(public member object)
char int_frac_digits
国際通貨数量の表示で小数点以下に表示する桁数
(public member object)
char int_p_cs_precedes
(C++11)
1 int_curr_symbolが非負の国際通貨値の前に配置される場合、 0 後ろに配置される場合
(public member object)
char int_n_cs_precedes
(C++11)
1 int_curr_symbolが負の国際通貨値の前に配置される場合、 0 後ろに配置される場合
(public member object)
char int_p_sep_by_space
(C++11)
int_curr_symbol positive_sign と非負の国際通貨値の間の区切りを示す
(public member object)
char int_n_sep_by_space
(C++11)
int_curr_symbol negative_sign と負の国際通貨値の間の区切りを示す
(public member object)
char int_p_sign_posn
(C++11)
positive_sign の非負の国際通貨値内での位置を示す
(public member object)
char int_n_sign_posn
(C++11)
negative_sign の負の国際通貨値内での位置を示す
(public member object)


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 )

関連項目

現在のロケールの数値および通貨書式設定の詳細を問い合わせる
(関数)
数値の句読点ルールを定義する
(クラステンプレート)
std::money_get および std::money_put で使用される通貨書式設定パラメータを定義する
(クラステンプレート)