命名空间
变体
操作

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
1 如果 currency_symbol 放在非负值之前,0 如果放在之后
(公共成员对象)
char n_cs_precedes
1 如果 currency_symbol 放在负值之前,0 如果放在之后
(公共成员对象)
char p_sep_by_space
指示 currency_symbolpositive_sign 和非负货币值的间隔
(公共成员对象)
char n_sep_by_space
指示 currency_symbolnegative_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)
1 如果 int_curr_symbol 放在非负国际货币值之前,0 如果放在之后
(公共成员对象)
char int_n_cs_precedes
(C++11)
1 如果 int_curr_symboll 放在负国际货币值之前,0 如果放在之后
(公共成员对象)
char int_p_sep_by_space
(C++11)
指示 int_curr_symbolpositive_sign 和非负国际货币值的间隔
(公共成员对象)
char int_n_sep_by_space
(C++11)
指示 int_curr_symbolnegative_sign 和负国际货币值的间隔
(公共成员对象)
char int_p_sign_posn
(C++11)
指示 positive_sign 在非负国际货币值中的位置
(公共成员对象)
char int_n_sign_posn
(C++11)
指示 negative_sign 在负国际货币值中的位置
(公共成员对象)


groupingmon_grouping 指向的 C 字符串的字符根据其数值进行解释。当遇到终止符 '\0' 时,将假定看到的值重复用于剩余的数字。如果遇到 CHAR_MAX,则不会再对数字进行分组。典型的分组是每次三个数字,例如 "\003"

p_sep_by_spacen_sep_by_spaceint_p_sep_by_spaceint_n_sep_by_space 的值解释如下

0 没有空格分隔货币符号和值
1 符号粘贴在货币符号上,值用空格分隔
2 符号粘贴在值上。货币符号用空格分隔

p_sign_posnn_sign_posnint_p_sign_posnint_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_getstd::money_put 使用的货币格式参数
(类模板) [编辑]
C 文档 用于 lconv