Setlocale c что это
Автор Александр задал вопрос в разделе Другие языки и технологии
Проблема с функцией "setlocale( LC_ALL, "rus" ) и получил лучший ответ
Ответ от George_Z[гуру]
Попробуй так:...#include <locale.h>...int main(){setlocale( LC_CTYPE, ".1251" );...
Ответ от D P[гуру]
Во первых, вывод русского на консоль будет происходить и без вызова 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. Но при ее правильной установке вы увидите локализованные системные сообщения (например от функции 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,"RUS")Вот так правильно
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Проблема с функцией "setlocale( LC_ALL, "rus" )