lconv
来自cppreference.com
                    
                                        
                    
                    
                                                            
                    |   定义于头文件  <locale.h>
  | 
||
|   struct lconv;  | 
||
struct lconv 含有 C 本地环境定义的数值和货币格式化规则。此结构体的对象可由 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 (C99)  | 
  若 int_curr_symbol 置于非负值前则为 1 ,于其后则为 0  (公开成员对象)  | 
|    char int_n_cs_precedes (C99)  | 
  若 int_curr_symbol 置于负值前则为 1 ,于其后则为 0  (公开成员对象)  | 
|    char int_p_sep_by_space (C99)  | 
  指示 int_curr_symbol 、 positive_sign 及非负国际货币值的分隔 (公开成员对象)  | 
|    char int_n_sep_by_space (C99)  | 
  指示 int_curr_symbol 、 positive_sign 及负国际货币值的分隔 (公开成员对象)  | 
|    char int_p_sign_posn (C99)  | 
  指示非负国际货币值中 positive_sign 的位置 (公开成员对象)  | 
|    char int_n_sign_posn (C99)  | 
  指示负国际货币值中 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 <locale.h> #include <stdio.h> int main(void) { setlocale(LC_ALL, "ja_JP.UTF-8"); struct lconv *lc = localeconv(); printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol); }
可能的输出:
Japanese currency symbol: ¥(JPY)
引用
- C11 standard (ISO/IEC 9899:2011):
 
- 7.11/2 Localization <locale.h> (p: 223)
 
- C99 standard (ISO/IEC 9899:1999):
 
- 7.11/2 Localization <locale.h> (p: 204)
 
- C89/C90 standard (ISO/IEC 9899:1990):
 
- 4.4 LOCALIZATION <locale.h>
 
参阅
|   查询当前本地环境的数值及货币格式化细节  (函数)  |