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”。

下面程序中使用的方案如下:

  • 首先在 main() 函数内部调用 setlocale() 函数,并将类别设置为 LC_MONETARY,并将区域设置设置为 en_GB。
  • 然后创建结构 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 结构并将其用于显示英国的当前货币符号,即 £。

更新于: 2020年1月20日

229 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.