类型
<clocale>

struct lconv

struct lconv;
数值的格式化信息
此结构体包含关于如何写入数值(包括货币和非货币值)的格式化信息。

函数 localeconv 返回一个此类型的对象。

它包含以下成员(不一定按此顺序):

成员常量

成员类型在 "C" locale 中的值描述
decimal_pointchar*"."用于非货币量的小数点分隔符。
thousands_sepchar*""用于分隔非货币量小数点左侧数字组的分隔符。
groupingchar*""为非货币量指定由 thousands_sep 分隔的每个数字组的位数。这是一个以零结尾的 char 值序列,从右开始的每个连续组可能包含不同的分组大小,每个数字表示该组的位数;此字符串中结尾零之前的最后一个数字用于其余的组。例如,假设 thousand_sep 设置为 "," 并且要表示的数字是一百万 (1000000)
grouping 设置为 "\3" 时,该数字将表示为:1,000,000
grouping 设置为 "\1\2\3" 时,该数字将表示为:1,000,00,0
grouping 设置为 "\3\1" 时,该数字将表示为:1,0,0,0,000
CHAR_MAX 表示不再执行进一步的分组。
int_curr_symbolchar*""国际货币符号。它由货币的三字母 ISO-4217 条目代码组成,例如美元的 "USD" 或英镑的 "GBP",后跟用于将此符号与货币量分开的字符。
currency_symbolchar*""本地货币符号,例如 "$"
mon_decimal_pointchar*""用于货币量的小数点分隔符。
mon_thousands_sepchar*""用于分隔货币量小数点左侧数字组的分隔符。
mon_groupingchar*""为货币量指定由 mon_thousands_sep 分隔的每个数字组的位数。请参见上面的 grouping 描述。
positive_signchar*""用于非负(正数或零)货币量的符号。
negative_signchar*""用于负货币量的符号。
frac_digitscharCHAR_MAX在本地格式中,货币量小数点右侧的小数位数。
p_cs_precedescharCHAR_MAX货币符号是否应位于非负(正数或零)货币量之前。如果此值为 1,则货币符号应在前;如果为 0,则应在后。
n_cs_precedescharCHAR_MAX货币符号是否应位于负货币量之前。如果此值为 1,则货币符号应在前;如果为 0,则应在后。
p_sep_by_spacecharCHAR_MAX货币符号和非负(正数或零)货币量之间是否应有空格。如果此值为 1,则应有空格;如果为 0,则不应有。
n_sep_by_spacecharCHAR_MAX货币符号和负货币量之间是否应有空格。如果此值为 1,则应有空格;如果为 0,则不应有。
p_sign_posncharCHAR_MAX非负(正数或零)货币量符号的位置
0:货币符号和数量被括号包围。
1:符号在数量和货币符号之前。
2:符号在数量和货币符号之后。
3:符号紧邻货币符号之前。
4:符号紧邻货币符号之后。
CHAR_MAX:未指定。
n_sign_posncharCHAR_MAX负货币量符号的位置。请参见上面的 p_sign_posn
int_frac_digitscharCHAR_MAXfrac_digits 相同,但用于国际格式(而非本地格式)。
int_p_cs_precedescharCHAR_MAXp_cs_precedes 相同,但用于国际格式
int_n_cs_precedescharCHAR_MAXn_cs_precedes 相同,但用于国际格式
int_p_sep_by_spacecharCHAR_MAXp_sep_by_space 相同,但用于国际格式
int_n_sep_by_spacecharCHAR_MAXn_sep_by_space 相同,但用于国际格式
int_p_sign_posncharCHAR_MAXp_sign_posn 相同,但用于国际格式
int_n_sign_posncharCHAR_MAXn_sign_posn 相同,但用于国际格式

对于 char* 类型的成员,值为 "",或对于 char 类型的成员,值为 CHAR_MAX,表示该值在当前 locale 中不可用

兼容性

int_pint_n 开头的成员(上方黄色高亮部分)是为符合 1999 年或之后 C 标准的库定义的(C++ 标准自 2011 年起才要求:C++11)。

另见