C尺度库参考指南(6)locale.h
当前位置:以往代写 > C/C++ 教程 >C尺度库参考指南(6)locale.h
2019-06-13

C尺度库参考指南(6)locale.h

C尺度库参考指南(6)locale.h

副标题#e#

6. locale.h

头文件locale对配置详细位置信息很有用。

变量:

struct lconv

宏:

NULL

LC_ALL

LC_COLLATE

LC_CTYPE

LC_MONETARY

LC_NUMERIC

LC_TIME

函数:

localeconv();

setlocale();

6.1. Variables and Definitions

数据布局“lconv”包括下面这些成员变量。这个数据布局的利用,将在“6.3 localeconv”中描写。

char *decimal_point;

char *thousands_sep;

char *grouping;

char *int_curr_symbol;

char *currency_symbol;

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;

char p_sep_by_space;

char n_cs_precedes;

char n_sep_by_space;

char p_sign_posn;

char n_sign_posn;

宏“LC_”将会在6.2 setlocale中描写。“NULL”是空指针常量值。


#p#副标题#e#

6.2. setlocale

声明:

char *setlocale(intcategory, const char *locale);

读写位置相关信息。

category的大概值有:

LC_ALL   配置所有信息。

LC_COLLATE   影响strcoll和strxfrm函数。

LC_CTYPE   影响所有字符函数。

LC_MONETARY   影响由localeconv函数提供的钱币信息。

LC_NUMERIC   影响十进制小数名目和localeconv函数提供的信息。

LC_TIME   影响strftime函数。

"C"可以将locale置为正常的C翻译情况配置(默认)。空值(即"")可将locale值为当地情况配置。空指针(NULL)会使“setlocale”函数返回一个指向与当前配置对应的category相关联的字符串的指针(不发生任何改变)。其他所有值由实现确定。

在乐成配置后,setlocale函数会返回一个指向之前的位置信息配置的字符串。若失败,则返回NULL。

实例:

#include<locale.h>   

#include<stdio.h>   


int main(void)   

{   

  char *old_locale;   


  old_locale=setlocale(LC_ALL,"C");   

  printf("The preivous setting was %s.\n",old_locale);   

  return 0;   

}

6.3. localeconv

声明:

struct lconv *localeconv(void);

置“lconv”数据布局为当前的位置信息配置。

在这个数据布局中的字符串指针,大概指向一个空串(即""),这表白这个值是不行用的。字符范例都长短负整数。假如值为CHAR_MAX,则这个值不行用。

lconv成员变量:

char *decimal_point   非钱币值的十进制数的小数点标记。

char *thousands_sep   非钱币值的千位脱离符。

char *grouping   一个表白在非钱币数量中每组巨细的字符串。每个字符代表一个整数值中相应数字组的巨细。0值暗示最前面的值也代表后头每个组的值。

char *int_curr_symbol   用于国际钱币标记。前面的三个字符遵从ISO 4217:1987尺度,第四个字符断绝钱币标记和钱币值。

char *currency_symbol   当地钱币标记。

char *mon_decimal_point   钱币值的十进制数的小数点标记。

char *mon_thousands_sep   钱币值的千位脱离符。

char *mon_grouping   与grouping雷同,可是是用于钱币值的。

char *positive_sign   正钱币值标记。

char *negative_sign   负钱币值标记。

char int_frac_digits   国际钱币值中,小数点后头的数字个数。

char frac_digits   钱币值中,小数点后头的数字个数。

char p_cs_precedes   个中的cs暗示currency symbol。假如该值取1的时候,currency_symbol呈此刻一个正钱币值前面。假如该值取0的时候,currency_symbol呈此刻一个负钱币值后头。

char p_sep_by_space   个中的sep暗示separate。假如该值取1的时候,则用空格将currency_symbol和正钱币值脱离开。假如该值取0,则不消空格将currency_symbol和正钱币值脱离开。

char n_cs_precedes   与p_cs_precedes雷同,不外是针对负钱币值的。

char n_sep_by_space   与p_sep_precedes雷同,不外是针对负钱币值的。

char p_sign_posn   在正钱币值中positive_sign的位置。

char n_sign_posn   在负钱币值中negative_sign的位置。

#p#副标题#e#

下面这些值用于p_sign_posn和n_sign_posn:

0   圆括号来包裹数值和钱币标记。

1   标记放在数值和钱币标记前。

2   标记放在数值和钱币标记后。

3   标记直接放在钱币标记前。

4   标记直接放在钱币标记后。

实例:

#include<locale.h>   

#include<stdio.h>   

int main(void)   

{   

  struct lconv locale_structure;   

  struct lconv *locale_ptr=&locale_structure;   


  locale_ptr=localeconv();   

  printf("Decimal point:                   %s",locale_ptr->decimal_point);   

  printf("Thousands Separator:             %s",locale_ptr->thousands_sep);   

  printf("Grouping:                        %s",locale_ptr->grouping);   

  printf("International Currency Symbol:   %s",locale_ptr->int_curr_symbol);   

  printf("Currency Symbol:                 %s",locale_ptr->currency_symbol);   

  printf("Monetary Decimal Point:          %s",locale_ptr->mon_decimal_point);   

  printf("Monetary Thousands Separator:    %s",locale_ptr->mon_thousands_sep);   

  printf("Monetary Grouping:               %s",locale_ptr->mon_grouping);   

  printf("Monetary Positive Sign:          %s",locale_ptr->positive_sign);   

  printf("Monetary Negative Sign:          %s",locale_ptr->negative_sign);   

  printf("Monetary Intl Decimal Digits:    %c",locale_ptr->int_frac_digits);   

  printf("Monetary Decimal Digits:         %c",locale_ptr->frac_digits);   

  printf("Monetary + Precedes:             %c",locale_ptr->p_cs_precedes);   

  printf("Monetary + Space:                %c",locale_ptr->p_sep_by_space);   

  printf("Monetary - Precedes:             %c",locale_ptr->n_cs_precedes);   

  printf("Monetary - Space:                %c",locale_ptr->n_sep_by_space);   

  printf("Monetary + Sign Posn:            %c",locale_ptr->p_sign_posn);   

  printf("Monetary - Sign Posn:            %c",locale_ptr->n_sign_posn);   

}

英文原文:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.6.html

原文作者:Eric Huss

中文译者:柳惊鸿 Poechant

版权声明:本文的原文版权归Eric Huss所有,中文译文版权归Poechant所有。转载请注明来自"柳大的CSDN博客":http://blog.csdn.net/poechant

    关键字:

在线提交作业