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)
示例
输入: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 结构并使用它来显示英国的当前货币符号,即 £。