1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【C标准库】通过locale.h设置美元的格式

【C标准库】通过locale.h设置美元的格式

时间:2019-09-01 09:36:08

相关推荐

【C标准库】通过locale.h设置美元的格式

本文已整合到C语言标准库深度解读

locale.h主要对时间和货币的书写格式进行了封装,从而符合不同地区的使用习惯。故而locale.h中设计了两个用于本地化的函数

char *setlocale(int category, const char *locale)struct lconv *localeconv(void)

前者用于设置或读取本地化信息,locale即代表某个区域的字符串,category代表将要设置的函数类别,其输入参数包括

其中,localeconv()函数被封装在locale.h中,其返回值是一个lconv结构,主要用于描述货币的表示方法,每个字段的含义在下面的注释中说明。在注释中,cs表示当前区域的货币符号。

typedef struct {char *decimal_point;//常规数值的小数点字符char *thousands_sep;//常规数值的千位分隔符char *grouping;//常规数值中每组数字大小的字符串char *int_curr_symbol; //国际货币符号使用的字符串。前三个字符由 ISO 4217:1987 指定,第四个字符用于分隔货币符号和货币量。char *currency_symbol; //当前区域的货币符号,后文用cs表示char *mon_decimal_point; //货币的小数点字符char *mon_thousands_sep; //货币的千位分隔符char *mon_grouping;//货币数值中每组数字大小的字符串char *positive_sign;//货币的正号char *negative_sign;//货币的负号char int_frac_digits; //国际货币值中小数点后要显示的位数char frac_digits; //货币值中小数点后要显示的位数。char p_cs_precedes;//cs在正货币值中的位置char p_sep_by_space;//cs与正货币值之间是否使用空格char n_cs_precedes;//cs在负货币值中的位置char n_sep_by_space;//cs与负货币值之间是否使用空格char p_sign_posn; //表示正货币值中正号的位置char n_sign_posn; //表示负货币值中负号的位置} lconv

其中,groupingmon_grouping均为字符串,分别表示在常规数值和货币中每组数字大小。字符串中每个字符都代表一个整数,用以指定当前组的位数。

当前区域的货币符号cs与货币值之间的排版方式为

货币中正负号的位置通过p_sign_posnn_sign_posn来调节,二者均有5个取值。

对于-1美元,其cs的符号设为$,当其n_sign_posn取值从0-5,n_cs_precedes分别为0,1时,表示方法分别如下

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。