std::lconv
|
在标头
<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、positive_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、positive_sign 及负国际货币值的分隔(公开成员对象) |
|
char int_p_sign_posn
(C++11)
|
指示非负国际货币值中 positive_sign 的位置(公开成员对象) |
|
char int_n_sign_posn
(C++11)
|
指示负国际货币值中 positive_sign 的位置(公开成员对象) |
按照数值转译 grouping 和 mon_grouping 所指向的 C 字符串。遇到终止 '\0' 时,假设最后见到的值为剩下的数位重复。若遇到 CHAR_MAX,则不再将数位分组。典型的每次三位分组是 "\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 << "日本货币符号: " << lc->currency_symbol << '(' << lc->int_curr_symbol << ")\n"; }
输出:
日本货币符号: ¥(JPY )
参阅
| 查询当前本地环境的数值和货币格式化细节 (函数) |
|
| 定义数值标点规则 (类模板) |
|
| 定义 std::money_get 与 std::money_put 所用的货币格式解析器的参数 (类模板) |