LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <clocale>
|
||
#define LC_ALL /* определено реализацией */ |
||
#define LC_COLLATE /* определено реализацией */ |
||
#define LC_CTYPE /* определено реализацией */ |
||
#define LC_MONETARY /* определено реализацией */ |
||
#define LC_NUMERIC /* определено реализацией */ |
||
#define LC_TIME /* определено реализацией */ |
||
Каждая из приведённых выше макроконстант расширяется до целочисленных константных выражений с различными значениями, которые подходят для использования в качестве первого аргумента 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 <cstdio>
#include <clocale>
#include <ctime>
#include <cwchar>
int main()
{
// локаль C будет английским языком с поддержкой UTF-8:
std::setlocale(LC_ALL, "en_US.UTF-8");
// десятичная точка будет немецкой:
std::setlocale(LC_NUMERIC, "de_DE.UTF-8");
// форматирование даты/времени будет японским:
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"Число: %.2f\\Дата: %Ls\n", 3.14, str);
}
Вывод:
Число: 3,14
Дата: 日曜日 2022年11月06日 17時55分10秒
Смотрите также
| возвращает или устанавливает текущую локаль C (функция) | |
| набор полиморфных фасетов, инкапсулирующих культурные различия (класс) | |
Документация C по locale categories
| |