C++ 中的 clocale 头文件

c++server side programmingprogramming

给定的任务是展示 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)

示例

输入:setlocale(LC_ALL, "en_GB")
s = setlocale(LC_ALL, NULL)
输出:C

setlocale() 返回指向字符串的指针,如果识别,则返回 C 语言环境,否则仅返回空指针,在本例中返回"C"。

以下程序中使用的方法如下

  • 首先在 main() 函数中调用 setlocale() 函数,并将类别设置为 LC_MONETARY,将语言环境设置为 en_GB。
  • 然后创建带有 char 指针的结构 lconv,假设为 lc,并使其等于 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 结构并使用它来显示英国的当前货币符号,即 £。


相关文章