std::lconv
From cppreference.com
| ヘッダー <clocale> で定義 |
||
| struct lconv; |
||
クラスstd::lconvは、Cロケールで定義された数値および通貨のフォーマット規則を含みます。この構造体のオブジェクトは、std::localeconvで取得できます。std::lconvのメンバーは、char型およびchar*型の値です。decimal_point以外のすべてのchar*メンバーは、ヌル文字(つまり、空のC文字列)を指している可能性があります。char型のメンバーはすべて非負の数値であり、現在のCロケールで対応する値が利用できない場合は、いずれもCHAR_MAXになる可能性があります。
目次 |
[編集] メンバーオブジェクト
[編集] 非通貨数値フォーマットパラメータ
| char* decimal_point |
小数点として使用される文字 (public メンバーオブジェクト) |
| char* thousands_sep |
小数点より前の桁のグループを区切るために使用される文字 (public メンバーオブジェクト) |
| char* grouping |
桁グループのサイズを示す要素の文字列 (public メンバーオブジェクト) |
[編集] 通貨数値フォーマットパラメータ
| char* mon_decimal_point |
小数点として使用される文字 (public メンバーオブジェクト) |
| char* mon_thousands_sep |
小数点より前の桁のグループを区切るために使用される文字 (public メンバーオブジェクト) |
| char* mon_grouping |
桁グループのサイズを示す要素の文字列 (public メンバーオブジェクト) |
| char* positive_sign |
非負の通貨数量を示すために使用される文字列 (public メンバーオブジェクト) |
| char* negative_sign |
負の通貨数量を示すために使用される文字列 (public メンバーオブジェクト) |
[編集] ローカル通貨数値フォーマットパラメータ
| char* currency_symbol |
現在のCロケールでの通貨に使用されるシンボル (public メンバーオブジェクト) |
| char frac_digits |
通貨数量で小数点以下に表示する桁数 (public メンバーオブジェクト) |
| char p_cs_precedes |
1通貨シンボルが非負の値の前に置かれる場合、0値の後ろに置かれる場合 (public メンバーオブジェクト) |
| char n_cs_precedes |
1通貨シンボルが負の値の前に置かれる場合、0値の後ろに置かれる場合 (public メンバーオブジェクト) |
| char p_sep_by_space |
currency_symbol、positive_sign、および非負の通貨値の区切りを示す(public メンバーオブジェクト) |
| char n_sep_by_space |
currency_symbol、negative_sign、および負の通貨値の区切りを示す(public メンバーオブジェクト) |
| char p_sign_posn |
非負の通貨値におけるpositive_signの位置を示す(public メンバーオブジェクト) |
| char n_sign_posn |
負の通貨値におけるnegative_signの位置を示す(public メンバーオブジェクト) |
[編集] 国際通貨数値フォーマットパラメータ
| char* int_curr_symbol |
現在のCロケールでの国際通貨名として使用される文字列 (public メンバーオブジェクト) |
| char int_frac_digits |
国際通貨数量で小数点以下に表示する桁数 (public メンバーオブジェクト) |
| char int_p_cs_precedes (C++11) |
1国際通貨シンボルが非負の国際通貨値の前に置かれる場合、0値の後ろに置かれる場合 (public メンバーオブジェクト) |
| char int_n_cs_precedes (C++11) |
1国際通貨シンボルが負の国際通貨値の前に置かれる場合、0値の後ろに置かれる場合 (public メンバーオブジェクト) |
| char int_p_sep_by_space (C++11) |
int_curr_symbol、positive_sign、および非負の国際通貨値の区切りを示す(public メンバーオブジェクト) |
| char int_n_sep_by_space (C++11) |
int_curr_symbol、negative_sign、および負の国際通貨値の区切りを示す(public メンバーオブジェクト) |
| char int_p_sign_posn (C++11) |
非負の国際通貨値におけるpositive_signの位置を示す(public メンバーオブジェクト) |
| char int_n_sign_posn (C++11) |
負の国際通貨値におけるnegative_signの位置を示す(public メンバーオブジェクト) |
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 で使用される通貨書式設定パラメータを定義する (クラステンプレート) | |
| Cドキュメント lconv
| |