Setlocale c что это
Автор Александр задал вопрос в разделе Другие языки и технологии
Проблема с функцией "setlocale( LC_ALL, "rus" ) и получил лучший ответ
Ответ от George_Z[гуру]
Проблема с setlocale часто заключается в неверном формате строки, так как значение rus обычно не распознается. Правильное название зависит от операционной системы. Для переносимости лучше использовать setlocale(LC_ALL, ""), чтобы программа автоматически подхватила настройки из системного окружения. Для русской локали в Linux верным форматом будет ru_RU. UTF-8 или ru_RU.utf8. Список доступных локалей можно узнать командой locale -a | grep ru_, которая обычно выдает варианты вроде ru_RU, ru_RU.cp1251, ru_RU.koi8r, ru_RU.utf8, ru_UA и ru_UA.utf8. В среде Windows для установки русской кодировки часто применяют setlocale(LC_CTYPE, ".1251") или указывают RUS. Не забывайте подключать заголовочный файл locale.h перед использованием функции.
Во первых, вывод русского на консоль будет происходить и без вызова setlocale. Но при ее правильной установке вы увидите локализованные системные сообщения (например от функции perror)Во вторых, читайте доки, они рулят. Вот избранные цитаты из man 3 setlocale:#include <locale.h>char *setlocale(int category, const char *locale);The argument locale is a pointer to a character string containing therequired setting of category. Such a string is either a well-knownconstant like "C" or "da_DK" (see below), or an opaque string that wasreturned by another call of setlocale().A locale name is typically of the form language[_territory][.code-set][@modifier], where language is an ISO 639 language code, territory is an ISO 3166 country code, and codeset is a character set or encoding identifier like ISO-8859-1 or UTF-8. For a list of all supported locales, try "locale -a", cf. locale(1).On startup of the main program, the portable "C" locale is selected as default. A program may be made portable to all locales by calling:setlocale( LC_ALL, "" );А если нужна конкретная локаль, то нужно ее правильно написать. Для русского Unicode это будет так: setlocale( LC_ALL, "ru_RU.UTF-8" );Узнать список русских локалей в вашей системе можно так:$ locale -a | grep ru_ru_RUru_RU.cp1251ru_RU.koi8rru_RU.utf8ru_UAru_UA.utf8
setlocale ( LC_ALL,"RUS")Вот так правильно
Си проблемы с setlocale(LC_ALL,"Russian");
Для корректной работы кириллицы в консольных приложениях на языке Си необходимо правильно настроить
подробнее...
Как найти trial key программы ( hide all ip) в дебрях реестра?
Для поиска данных пробного периода программы Hide All IP в реестре Windows проверьте основные
подробнее...
19. Установите соответствие между функцией исторического знания и ее определением:
Основные функции исторического знания и их определения для установления соответствия выглядят
подробнее...
these и this ? в чем разница. ..all these people....в чем разница между these и this скажите пожалуйста.
Разница между this и these заключается в грамматическом числе. This используется с существительными
подробнее...
что такое метод? почему проблема метода стала центральной в философии нового времени?
Метод — это система приёмов, способов и операций, с помощью которых человек познаёт мир или
подробнее...