Namespaces
Variants

LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME

From cppreference.net
Определено в заголовочном файле <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 для категорий локалей