Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/54: Рейтинг темы: голосов - 54, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 27.10.2017
Сообщений: 14

Русский язык в консоли

27.10.2017, 15:55. Показов 14250. Ответов 64

Студворк — интернет-сервис помощи студентам
Помогите разобраться в чем проблема! Сидел в Visual Studio учился писать код на C++ и решил написать прогу на русском в итоге я заметил что не один из вариантов у меня не сработал, не setlocal, не SetConsoleCP, не wcout. Думал проблема в Visual Studio и перешел в CodeBlock и там та же проблема!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2017, 15:55
Ответы с готовыми решениями:

Русский язык в консоли
Здраствуйте, у меня такой вот вопрос: Почему когда я пишу текст на русском языке в программе C++ Builder 2009, то в моей программе вместо...

Русский язык в консоли
для работы с русским языком использую: #include <locale> setlocale(LC_CTYPE, "Russian"); но в програме мне нужно вводить через...

Русский язык в консоли
Допустим вот код cout << "Помогите пожалуйста!"; Пробовал и setlocale и <windows.h>. Проблема в том что вместо русских букв он...

64
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
14.08.2023, 15:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
хотя бы потому что wchar_t разное представление юникода несет на разных системах
Мы говорим про ввод-вывод русского текста, а не про обработку. Предыдущий костыль с setoutputcp вполне универсален. Ну не считая собственно костыля.
Цитата Сообщение от DrOffset Посмотреть сообщение
Зачем тогда решили убрать из него windows.h?
Я часто видел, как его добавляют туда, где он не нужен. По инерции.
Цитата Сообщение от DrOffset Посмотреть сообщение
Просто действительно не понимаю зачем вообще про это писать, если вам сразу было понятно, что это исходник для винды?
Если вы заметили, я свои решения изначально пишу так, чтобы они хотя бы компилировались. То есть как законченные решения, а не как "коллекцию костылей", которой потом непонятно как пользоваться.
0
18 / 17 / 2
Регистрация: 25.02.2020
Сообщений: 73
14.08.2023, 15:57
Попробуйте с кодировкой 1251:
C++
1
2
3
4
5
6
7
8
9
10
11
#include"stdafx.h"
#include<stdlib.h>
using namespace std;
int main()
{
    system("chcp 1251");
    system("cls");
    cout << "Hello, Привет!" << endl;
    system("pause");
    return 0;
}
Консольное приложение VS2010 (win32 console proect) все работает.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
14.08.2023, 16:27
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Если вы заметили, я свои решения изначально пишу так, чтобы они хотя бы компилировались.
Я тоже. Даже скриншот работы прилагаю.
В общем, необоснованные претензии я не принимаю. Если есть что по существу сказать - welcome.
0
 Аватар для COKPOWEHEU
4150 / 2728 / 433
Регистрация: 09.09.2017
Сообщений: 12,087
14.08.2023, 18:52
Цитата Сообщение от ALEX5791 Посмотреть сообщение
Попробуйте с кодировкой 1251:
Попробуйте сначала почитать тему и о чем в ней шла речь, прежде чем советовать варианты, десять раз признанные неудачными.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
надо будет попробовать перевести его на обычный Си
А не похоже, что получится. Разве что getchar / putchar переписывать. И если оно так и есть, то решение DrOffset вообще не решение, даже под винду.
Цитата Сообщение от DrOffset Посмотреть сообщение
Я тоже. Даже скриншот работы прилагаю.
То есть мне сделать скриншот ругани на windows.h или вы все же прекратите спорить с очевидным?!
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
14.08.2023, 20:16
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
То есть мне сделать скриншот ругани на windows.h или вы все же прекратите спорить с очевидным?!
Зачем?
Исходник под винду. Иллюстрирует решение под винду для С++ (не для С).
Об этом сразу было сказано.
Так что это вы спорите с очевидным, что в рамках заранее оговоренных условий код компилируется и работает.

Знаете, когда заранее оговариваешь условия очень странно получать замечания вне рамок этих условий.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А не похоже, что получится.
Для Си сделать не получится.
В Си нет стандартного способа подменить реализацию IO-потоков. В C++ для стандартных потоков есть такой способ и я его показал, а для Си нет.
В POSIX есть вот такое
https://man7.org/linux/man-pag... kie.3.html
но в MinGW этой функциональности нет.

Так что если в какой-то системе не работает _setmode (как, например, в XP), то универсального решения для С и С++ не сущестует.
Максимум что можно сделать для Си при необходимости - это отказаться от стандартного IO и уйти на какую-то реализацию на базе уже показанного выше механизма. Обложить все это ifdef`ами, для современных систем это будет вырождаться в обычные printf-ы, а для старых систем без поддержки _setmode в собственные реализации. Естественно из-за повышенной трудоемкости делать это имеет смысл только при промышленной необходимости, а это очень маловероятно: мало кому в индустрии нужны консольные мультиязычные приложения для древних систем. Засим лимит более-менее простых решений исчерпан. Больше ничего сделать нельзя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2023, 20:16

Русский язык в консоли
Здравствуйте, Столкнулся с банальной проблемой При вводе-выводе в текстовый файл и в консоль при обращении непосредственно из main()...

Русский язык в консоли
Здравствуйте.У меня следующая проблема:Когда я записываю русский текст в текстовый файл в файле появляется абра-кадабра какая-то.Как...

Русский язык в консоли
Как сделать запись в файл и чтение с него русскими буквами а не иероглифами?

Русский язык в консоли
Здравствуйте! Перепробовал все способы в соответствующей теме - ничего не работает. Пишу в QtCreator(без использования Qt как...

Русский язык в консоли Qt 5.3
помогите пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
65
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru