给出的任务是显示C ++中<clocale>头文件的用法。
<clocale>头文件是本地化库的一部分,而本地化库又是C ++标准库的一部分。最初它在C标准库中,名称为<locale.h>。
此头文件中包含的函数和声明用于需要不同国家/地区的日期格式和货币符号的任务。
<clocale>头文件中包含的功能是setlocale()
和localeconv()
在此头文件中定义并在这两个函数中使用的宏是-
LC_ALL- >它设置了所有内容。
LC_COLLATE- >它会影响strcoll和strxfrm函数。
LC_CTYPE- >会影响所有字符功能。
LC_MONETARY- >它会影响localeconv函数提供的货币信息。
LC_NUMERIC- >它会影响小数点格式以及localeconv函数提供的信息。
LC_TIME- >它会影响strftime函数。
localeconv()
该localeconv()
方法设置或读取与位置有关的信息。
的语法localeconv()
如下-
Struct lconv*localeconv()
setlocale()
该setlocale()
函数将安装指定的系统语言环境,并根据当前程序设置语言环境信息。
它的语法setlocale()
如下-
char *setlocale(int category, const char *locale)
Input: setlocale(LC_ALL, "en_GB") s = setlocale(LC_ALL, NULL) Output: C
setlocale()返回指向该字符串的指针,如果它标识它将返回C语言环境,否则它仅返回一个空指针,在这种情况下,它将返回“ C”。
以下程序中使用的方法如下-
首先在setlocale()
函数内部调用函数main()
,并将类别设置为LC_MONETARY,将语言环境设置为en_GB。
然后使用char指针(例如lc)创建结构lconv,并使其保持等于localeconv()
函数的调用,以便localeconv()
函数可以返回指向我们创建的结构的指针。
使用printf语句打印当前货币。
#include <iostream> #include <locale.h> using namespace std; int main() { setlocale(LC_MONETARY, "en_GB"); struct lconv* lc = localeconv(); printf("%s ", lc->currency_symbol); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
£
在输出中,我们得到英镑的货币符号,这是英国的货币,因为在setlocale函数中,我们选择了货币类别LC_MONETARY,并将语言环境设置为“ en_GB”,其中GB是英国的缩写。此外,我们创建了lconv结构,并将其用于显示英国当前的货币符号£。