C ++中的clocale头文件

给出的任务是显示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结构,并将其用于显示英国当前的货币符号£。