Top.Mail.Ru
Ответы

В чем отличие system("chcp 1251>NULL"); и setlocale(LC_ALL, "Russian"); в с++

.........

По дате
По Рейтингу
Аватар пользователя
Новичок

Это два разных способа наладить работу русских букв в консоли Windows.
system("chcp 1251>NULL");
Выполняет указанную команду ОС для изменяется кодировки консоли. В результате правильно работает ввод и вывод русских букв.
Это не работает в Windows 7, если выбран точечный шрифт в консоли.

setlocale(LC_ALL, "Russian");
Что-то настраивает в библиотеке stdlib, в результате чего она начинает выводить текст в кодировке консоли. Это одинаково работает независимо от строки в кавычках. Ввод русских букв продолжает работать неправильно.

Оба способа работают, только если Windows настроен на русский язык (язык для программ не поддерживающих Юникод). Современные программы должны работать независимо от этой настройки.

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

по сути ничем. И то и это подключают языковую поддержку кириллицы

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

system() работает через консольные команды операционной системы

setlocale() работает через подключенную библиотеку локализации языка Си в данной ОС