Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
#1

Можно ли как-то осуществить вывод кириллицы в консоль, не используя Lucida Console

09.06.2014, 11:44. Просмотров 772. Ответов 12
Метки нет (Все метки)

Собственно сабж в заголовке. Есть способ оставить стандартный Consolas?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2014, 11:44
Ответы с готовыми решениями:

Как в консоли автоматически выбрать шрифт Lucida Console, а не точечный шрифт?
Например №36 (размер шрифта 22х36).

Вывод кириллицы в консоль
Все правильно написал , сделал. #include <iostream> #include <windows.h>...

Вывод кириллицы в консоль
Здравствуйте. Вообще-то я занимаюсь явой, но, для общего развития решил освоить...

Вывод кириллицы в консоль
Привет, как изменить код что-бы выводилась русская "б" вместо иероглифов? ...

Параметр для консольной строки - шрифт Lucida Console
Начал писать программу (программы) в которых будет записываться информация в...

12
dzrkot
zzzZZZ...
523 / 354 / 94
Регистрация: 11.09.2013
Сообщений: 2,039
09.06.2014, 12:04 #2
мб поможет
C++
1
setlocale(LC_ALL,"Russian");
у меня кириллица в консоли по умолчанию поддерживается
0
Croessmah
++Ͻ
14488 / 8269 / 1553
Регистрация: 27.09.2012
Сообщений: 20,312
Записей в блоге: 3
Завершенные тесты: 1
09.06.2014, 12:06 #3
Тогда нужно будет с кодировками играться
0
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.06.2014, 13:06  [ТС] #4
Цитата Сообщение от dzrkot Посмотреть сообщение
мб поможет
setlocale(); работает только с выводом кириллицы на консоль, а вот ввод она не поддерживает. Попробуйте использовать getche(), и он распознает его как кракозябру. И еще, вы используете стандартный шрифт Consolas? или меняли на Lucia? просто если да, то это все меняет...

Добавлено через 2 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Тогда нужно будет с кодировками играться
вы имеете ввиду дописать что-то в локаль? вроде этого:
C++
1
setlocale(LC_ALL, "UTF8.23"); //ну или что-то вроде этого?
если да, то могли бы показать рабочий вариант, а то я что не пробовал не получалось

Добавлено через 1 минуту
там кажется вместо LC_ALL должен быть LC_CTYPE, но это не меняет сути.
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.06.2014, 15:21 #5
Лучший ответ Сообщение было отмечено 007imran007 как решение

Решение

В mingw можно в опциях компилятора прописать: -finput-charset=CP1251 -fexec-charset=CP866
Кодировки будут правильно работать и без setlocale() и без SetConsoleCP() и т.д.
Для студии попался такой метод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Шрифт точечный. Русский ввод и вывод без  настройки шрифта (берётся по умолчанию)
// В Code::Blocks не будет работать (отсутствует кодировка 866 )
 
#include <cstdlib>
#include <string>
#include <windows.h>
using namespace std;
 
int main (void)
{    
    setlocale(0, "");
    cout << "Русский ввод!" << endl;
    
    SetConsoleCP(1251);
    string str;
    cin >> str;
    SetConsoleCP(866);
    
    cout << str << endl;
    
   system("pause");
   return 0;
}
1
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.06.2014, 15:33  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Для студии попался такой метод:
спс, помогло! а можете объяснить в чем соль? сначала ставим cp1251 с русской кирилицей, затем cp866 - также предназначенной для кириллицы. Почему это не срабатывает при добавлении одной CodePage?
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.06.2014, 15:36 #7
Цитата Сообщение от 007imran007 Посмотреть сообщение
а можете объяснить в чем соль?
Нет, это же мне попалось, а не сам придумал.
0
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.06.2014, 15:37  [ТС] #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Нет, это же мне попалось, а не сам придумал.
а есть ссылка на оригинал страницы? или это просто исходник?
0
alsav22
5441 / 4836 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
09.06.2014, 15:46 #9
Цитата Сообщение от 007imran007 Посмотреть сообщение
а есть ссылка на оригинал страницы? или это просто исходник?
Здесь, на форуме, попалось. Ссылки на тему не осталось (там, по-моему, автор этого способа выложил код).
0
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,569
Записей в блоге: 1
09.06.2014, 16:42 #10
007imran007, если интересно, почитай: О кодировках, кодовых страницах и проблемах вывода на консоль
1
007imran007
1 / 1 / 0
Регистрация: 08.07.2012
Сообщений: 83
09.06.2014, 17:19  [ТС] #11
Цитата Сообщение от zer0mail Посмотреть сообщение
если интересно, почитай
придется прокси включать...тут ЖЖ запрещен))
0
Voivoid
708 / 280 / 16
Регистрация: 31.03.2013
Сообщений: 1,339
09.06.2014, 18:14 #12
Сколько ж можно. Юзайте юникод


Можно ли как-то осуществить вывод кириллицы в консоль, не используя Lucida Console
0
kolia4
34 / 39 / 18
Регистрация: 04.05.2013
Сообщений: 208
09.06.2014, 19:03 #13
Мы в универе, когда начинали изучать C++, пользовались вот такой функцией
C++
1
2
3
#include <windows.h>
char buf[256];
char *rus(char *s) { CharToOem(s, buf); return buf; }
И в той статье этот способ упоминается.
0
09.06.2014, 19:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2014, 19:03

Неправильный вывод кириллицы в консоль
Здравствуйте уважаемые форумчане. Нуждаюсь в Вашем совете. Моя программа(ка...

При запуске консоли автоматически устанавливать шрифт Lucida Console
Как сделать так чтобы при запуске консоли автоматически ставился шрифт Lucida...

Ввод/вывод кириллицы через консоль
Вот простейший пример ввода и вывода слова(символа) через консоль # include...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru