LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
| Localization library | |||||||||||||||||||||||||
| Regular expressions library (C++11) | |||||||||||||||||||||||||
| Formatting library (C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<clocale>
|
||
|
#define LC_ALL /* implementation defined */
|
||
|
#define LC_COLLATE /* implementation defined */
|
||
|
#define LC_CTYPE /* implementation defined */
|
||
|
#define LC_MONETARY /* implementation defined */
|
||
|
#define LC_NUMERIC /* implementation defined */
|
||
|
#define LC_TIME /* implementation defined */
|
||
Каждая из приведённых выше макроконстант раскрывается в целочисленные константные выражения с уникальными значениями, которые подходят для использования в качестве первого аргумента функции std::setlocale .
| Константа | Описание |
LC_ALL
|
выбирает всю локаль C |
LC_COLLATE
|
выбирает категорию сортировки локали C |
LC_CTYPE
|
выбирает категорию классификации символов локали C |
LC_MONETARY
|
выбирает категорию денежного форматирования локали C |
LC_NUMERIC
|
выбирает категорию числового форматирования локали C |
LC_TIME
|
выбирает категорию временного форматирования локали C |
Дополнительные макроконстанты, имена которых начинаются с
LC_
и за которыми следует как минимум одна заглавная буква, могут быть определены в
<clocale>
. Например, спецификация POSIX требует наличия
LC_MESSAGES
(который управляет
std::perror
и
std::strerror
), ISO/IEC 30112:2014 (
черновик 2014 года
) дополнительно определяет
LC_IDENTIFICATION
,
LC_XLITERATE
,
LC_NAME
,
LC_ADDRESS
,
LC_TELEPHONE
,
LC_PAPER
,
LC_MEASUREMENT
и
LC_KEYBOARD
, которые поддерживаются библиотекой GNU C (за исключением
LC_XLITERATE
).
Пример
#include <clocale> #include <cstdio> #include <ctime> #include <cwchar> int main() { // the C locale will be the UTF-8 enabled English: std::setlocale(LC_ALL, "en_US.UTF-8"); // decimal dot will be German: std::setlocale(LC_NUMERIC, "de_DE.UTF-8"); // date/time formatting will be Japanese: std::setlocale(LC_TIME, "ja_JP.UTF-8"); wchar_t str[100]; std::time_t t = std::time(nullptr); std::wcsftime(str, 100, L"%A %c", std::localtime(&t)); std::wprintf(L"Number: %.2f\nDate: %Ls\n", 3.14, str); }
Вывод:
Number: 3,14 Date: 日曜日 2022年11月06日 17時55分10秒
Смотрите также
|
получает и устанавливает текущую локаль C
(функция) |
|
|
набор полиморфных фасадов, инкапсулирующих культурные различия
(класс) |
|
|
Документация C
для
категорий локалей
|
|