C ++ setlocale () - Стандартная библиотека C ++

Функция setlocale () в C ++ устанавливает информацию о локали для текущей программы.

Функция setlocale () определена в заголовочном файле.

setlocale () прототип

 int setlocale (int category, const char * locale);

Функция setlocale используется для установки указанного системного языкового стандарта для данной категории. Функцию setlocale также можно использовать для запроса текущей локали C.

Это можно сделать, передав нулевой указатель вместо языкового стандарта.

setlocale () Параметры

  • category: указывает, на какую языковую информацию влияет программа. Возможные макросы для категории:
Макрос категории для setlocale ()
Макросы Описание
LC_ALL Выбирает все локали C
LC_COLLATE Выбор категории сопоставления
LC_CTYPE Выбирает категорию классификации символов
LC_MONETARY Выбирает категорию денежного форматирования
LC_NUMERIC Выбирает категорию числового форматирования
LC_TIME Выбирает категорию форматирования времени
  • locale: системный идентификатор локали. Если это пустой указатель, вызов setlocale () запрашивает текущую локаль C.

setlocale () Возвращаемое значение

  • В случае успеха функция setlocale () возвращает указатель на строку, определяющую локаль C после применения изменений.
  • В случае неудачи возвращает нулевой указатель.

Пример: как работает функция setlocale ()?

 #include #include using namespace std; int main() ( char *str; setlocale(LC_ALL, "en_US.utf8"); str = setlocale(LC_ALL, NULL); cout << "Current locale: " << str << endl; cout << "Changing locale " << endl; setlocale(LC_ALL, "en_GB.utf8"); str = setlocale(LC_ALL, NULL); wcout << "Current locale: " << str << endl; return 0; )

Когда вы запустите программу, вывод будет:

 Текущий языковой стандарт: en_US.utf8 Изменение языкового стандарта Текущий языковой стандарт: en_GB.utf8

Интересные статьи...