LC_COLLATE
LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
在头文件 | | |
---|---|---|
#define LC_ALL / *实现定义* / | | |
#define LC_COLLATE / *实现定义* / | | |
#define LC_CTYPE / *实现定义* / | | |
#define LC_MONETARY / *实现定义* / | | |
#define LC_NUMERIC / *实现定义* / | | |
#define LC_TIME / *实现定义* / | | |
上述每个宏常量都扩展为具有不同值的整数常量表达式,这些值适合用作第一个参数setlocale
。
不变 | 说明 |
---|---|
LC_ALL | 选择整个C语言环境 |
LC_COLLATE | 选择C语言环境的归类类别 |
LC_CTYPE | 选择C语言环境的字符分类类别 |
LC_MONETARY | 选择C语言环境的货币格式类别 |
LC_NUMERIC | 选择C语言环境的数字格式化类别 |
LC_TIME | 选择C语言环境的时间格式类别 |
额外的宏常量,其名称LC_
后面跟着至少一个大写字母,可以在中定义locale.h
。例如,POSIX规范要求LC_
MESSAGES(其控制,除其他事项外,perror
和strerror
),和GNU C库另外限定LC_
PAPER,LC_
NAME,LC_
ADDRESS,LC_
TELEPHONE,LC_
MEASUREMENT,和LC_
IDENTIFICATION。
例
#include <stdio.h>
#include <locale.h>
#include <time.h>
#include <wchar.h>
int main(void)
{
setlocale(LC_ALL, "en_US.UTF-8" // the C locale will be the UTF-8 enabled English
setlocale(LC_NUMERIC, "de_DE" // decimal dot will be German
setlocale(LC_TIME, "ja_JP" // date/time formatting will be Japanese
wchar_t str[100];
time_t t = time(NULL
wcsftime(str, 100, L"%A %c", localtime(&t)
wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str
}
输出:
Number: 3,14
Date: 月曜日 2011年12月19日 18時04分40秒
参考
- C11标准(ISO/IEC 9899:2011):
另请参阅
setlocale | 获取并设置当前的C语言环境(函数) |
---|
| 用于语言环境类别的C ++文档|