Функция setlocale () в C ++ устанавливает информацию о локали для текущей программы.
Функция setlocale () определена в заголовочном файле.
setlocale () прототип
int setlocale (int category, const char * locale);
Функция setlocale используется для установки указанного системного языкового стандарта для данной категории. Функцию setlocale также можно использовать для запроса текущей локали C.
Это можно сделать, передав нулевой указатель вместо языкового стандарта.
setlocale () Параметры
- category: указывает, на какую языковую информацию влияет программа. Возможные макросы для категории:
Макросы | Описание |
---|---|
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