Функцията setlocale () в C ++ задава локалната информация за текущата програма.
Функцията setlocale () е дефинирана в заглавния файл.
прототип на setlocale ()
int setlocale (int категория, const char * локал);
Функцията setlocale се използва за задаване на зададен локал на системата за дадената категория. Функцията setlocale може да се използва и за запитване на текущия локал C.
Това може да се направи чрез подаване на нулев указател вместо локал.
параметри setlocale ()
- категория: Указва коя локална информация на програмата е засегната. Възможните макроси за категория са:
Макроси | Описание |
---|---|
LC_ALL | Избира всички локали C |
LC_COLLATE | Избор на категорията за съпоставяне |
LC_CTYPE | Избира категорията за класификация на знаците |
LC_MONETARY | Избира категорията за парично форматиране |
LC_NUMERIC | Избира категорията за цифрово форматиране |
LC_TIME | Избира категорията за форматиране на времето |
- локал: специфичен за системата идентификатор на локал. Ако това е нулев указател, извикване на 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