Как использовать кириллицу в консольных приложениях?
Запись от fair7 размещена 19.01.2021 в 23:59
Показов 7943
Комментарии 11
|
Как использовать кириллицу в консольных приложениях (русский и украинский)? Есть несколько способов. 1) В настройках шрифта выбрать Lucida Console (Либо через настройки консоли либо задаванием номер шрифта). Кликните здесь для просмотра всего текста
2) через функцию system Кликните здесь для просмотра всего текста
3) или написать свою библиотеку:cyrillic.rar Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Ведь использование CharToOem не позволяет использовать украинские буквы. | ||||||||||||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 11
Комментарии
-
Все работает по умолчанию без каких-то настроек.

Запись от locm размещена 21.01.2021 в 13:40
-
Запись от fair7 размещена 21.01.2021 в 23:12
-
Предполагаю что IDE Visual C++. А точно нужно ставить кодировку 1251? Вроде консоль для кириллицы использует 866. В настройках IDE выбери формат файла в требуемой кодировке и будет тебе счастье. Или как вариант перед каждым выводом указываем SetConsoleOutputCP(1251), а перед каждым вводом SetConsoleCP(1251). Если указать последовательно, что последнее указано, то и будет работать корректноЗапись от AgentSmith размещена 22.01.2021 в 00:51
-
Запись от Avazart размещена 22.01.2021 в 13:47
-
Весь код на скрине.
Компиль PureBasic. Собирал под винду.
Библиотечная функция PrintN приводит к вызову WriteConsoleW и вероятно дело в этом.Запись от locm размещена 22.01.2021 в 17:40
-
Начнем с того что есть:
1. Кодировка файлов исходников ( *.cpp , *.h ) программы.
2. Есть кодировка самой консоли.
Очевидно что если исходники в cp1251 (русскоязычная винда) или в UTF8 а консоль в cp866 (по умолчанию как наследие досовских времен) то в выводе будут непонятные кракозяблы.
Поэтому нужно менять кодировку самой консоли.
По хорошему конечно хранить исходник в UTF-8 (при чем для MSVC обязательно "UTF-8 c BOM")
Но стоит отметить что если с cp1251 все просто и нормально работает, то с UTF8 - проблемы в винде.Запись от Avazart размещена 22.01.2021 в 21:29
-
Кодировка исходника UTF-8. Кодировка строк приложения - UCS2. Как видим на скрине - все работает без каких-либо настроек.Запись от locm размещена 23.01.2021 в 14:31
-
Запись от Avazart размещена 23.01.2021 в 14:38
-
Тогда почему не используете?Запись от locm размещена 23.01.2021 в 15:42
-
Запись от K_ILYA_V размещена 23.01.2021 в 17:59
-
Когда нужно используем.
Но std::cout удобнее т.е. он функциональнее ну и на всех платформах.
Но вопрос почему std::cout/std::cin не работает корректно под виндой остается. (наверное скорее к MS чем к С++)
Одно дело само программирование, другое дело интерфейс пользователя. Программами пользуются не только программисты.
Есть такая вещь как локализация и интернационализация.
https://www.alba-translating.r... ation.htmlЗапись от Avazart размещена 23.01.2021 в 20:23


