Top.Mail.Ru
Ответы

Setlocale(LC_ALL, ".1251") (Си)

Это
int main()
{
setlocale(LC_ALL, "rus");
char *p= setlocale(LC_ALL, NULL);
printf("MY LOCALE IS %s\n", p);
}

и это

int main()
{
setlocale(LC_ALL, ".1251");
char *p= setlocale(LC_ALL, NULL);
printf("MY LOCALE IS %s\n", p);
}
Одно и то же?
Мне сильно кажется что это не одно и то же.
Какое различие?
-------------------------

У меня показывает локаль С здесь
int main()
{
char *p= setlocale(LC_ALL, NULL);
printf("MY LOCALE IS %s\n", p);
}
Это же явно не локаль компьютера.
Это стандартная таблица символов для моего IDE что ли?
Пока не выставишь нужную локаль, будет всякая белиберда по таблице символов "С" выводиться?

По дате
По рейтингу
Аватар пользователя
Просветленный

Setlocale() выставляет локаль для текущей запущенной программы. Ей без разницы, какая локаль по умолчанию стоит на компе.

Локаль по умолчанию лучше узнать так:
char *p= setlocale(LC_ALL, "");
printf("MY LOCALE IS %s\n", p);

Под любую версию Винды локаль хорошо показывает консольная программа, скомпилированная в старом добром IDE C++ Builder 6.