С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Chernobyl
214 / 214 / 67
Регистрация: 30.09.2012
Сообщений: 545
#1

Вывод русского текста в консоли - C++

04.01.2013, 14:34. Просмотров 1962. Ответов 9
Метки нет (Все метки)

Доброго времени суток.Помогите пожалуйста в таком вопросе.Вот простенькая программа,которой нужно ввести имя,а она выведет Привет,введеное имя. Но проблема в том,что благодаря использваванию setlocale(LC_ALL, "Russian"); или же setlocale(0, ""); вместо того введенного имени выводяться кракозябры...Как сделать так,чтобы выводился нормальный русский текст? У меня Вижуал Студио 2012,винда 7, 64 бит

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# include <iostream>
# include <string>
# include <vector>
# include <algorithm>
# include <cmath>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    string name;
    cout << "Введите имя адресата" << endl ;
    cin >> name;
    cout << "Привет," << name << endl;
    system ("pause");
    return 0;
 
}
0
Миниатюры
Вывод русского текста в консоли  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2013, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод русского текста в консоли (C++):

Вывод русского текста в консоли - C++
Ребят для курсового проекта требуется реализовать ввод русских букв, сколько уже не мучался с этим итог нулевой. Пробовал ...

Ввод в файл с консоли русского текста - C++
Есть ф-ия, для добавления студентиов в базу. На английском вводит номрально, а на русском к сожалению нет. Локаль в мейне подключена....

Вывод русского языка в консоли - C++
Доброго времени суток, коллеги! Столкнулся с проблемой при написании простенькой программы шифрования/дешифрования текста: после...

Вывод русского текста - C++
Привет, я тут упражнение из книжки делаю. Там класс с переменными, содержащими имя (тип string) и ID работника (long). Я все сделал, но...

Неправильное отображение русского текста в консоли при использовании setlocale(LC_ALL, "Russian") - C++
Ребят, такая ситуация, прописал setlocale(LC_ALL, &quot;Russian&quot;);но в консоли вместо текста на русском-набор букв, в чем может быть...

Вывод текста в поток консоли - C++
Помогите найти функцию для вывода текста в поток консоли помню что она принимает stdout и char* работает вроде как в printf (давно находил...

9
Stivento
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 17
04.01.2013, 14:43 #2
А обязательно нужен setlocale, я пользуюсь system("chcp 1251")?
0
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
04.01.2013, 14:45 #3
Поможет.

C++
1
2
3
4
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
1
Chernobyl
214 / 214 / 67
Регистрация: 30.09.2012
Сообщений: 545
04.01.2013, 15:08  [ТС] #4
Цитата Сообщение от Afflicted Посмотреть сообщение
Поможет.

C++
1
2
3
4
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);



Благодарю,помогло,сначала не помогло конечно,но подключил еще # include <windows.h> и в строке выставил шрифт Lucida Console и все отлично работает.Благодарю!
0
nonedark2008
935 / 674 / 149
Регистрация: 28.07.2012
Сообщений: 1,843
04.01.2013, 15:44 #5
Чтобы постоянно не менять шрифт в консоли, есть еще один вариант. Надо убрать setlocale, а вместо типа char использовать wchar_t, и соответственно вместо cin и cout использовать wcin и wcout. Также есть куча аналогов функций, которые работают с char, для wchar_t.
0
coloc
погромист
411 / 247 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 15:48 #6
nonedark2008, а постоянно шрифт в консоли и не нужно менять. Можно просто по умолчанию поставить нужный шрифт
0
nonedark2008
935 / 674 / 149
Регистрация: 28.07.2012
Сообщений: 1,843
04.01.2013, 15:50 #7
coloc, но если программу перетащить на другой компьютер, то там тоже придется менять, что не хорошо >_>
0
coloc
погромист
411 / 247 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 16:03 #8
nonedark2008, я не думаю, что эти танцы с бубнами типа wchar_t легче, чем пару кликов мышкою на окне с консолью. Тем более зачем кому то перетащивать свои программы на чужой компьютер? Чтобы похвастаться какой супер инновационный морской бой?
0
nonedark2008
935 / 674 / 149
Регистрация: 28.07.2012
Сообщений: 1,843
04.01.2013, 16:19 #9
Цитата Сообщение от coloc Посмотреть сообщение
Тем более зачем кому то перетащивать свои программы на чужой компьютер?
Ну, например многим для сдачи задания - требуется его отослать преподу на почту. Неужто к письмо придется приписывать, что для нормальной работы программы требуется зайти туда-то, поменять что-то на что-то там и только потом уже запускать программу???
0
Croessmah
Ушел
Эксперт CЭксперт С++
13558 / 7708 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
05.01.2013, 09:34 #10
Цитата Сообщение от nonedark2008 Посмотреть сообщение
но если программу перетащить на другой компьютер, то там тоже придется менять, что не хорошо
Кто мешает программно поменять шрифт?
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Ну, например многим для сдачи задания - требуется его отослать преподу на почту.
Ну если препод не идиот, то всё будет нормально.
А если уж переходить на Юникод, то и консоль загоняйте под UTF-8.
0
05.01.2013, 09:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2013, 09:34
Привет! Вот еще темы с ответами:

Принятие русского шрифта в консоли - C++
Здрасте! Я написал програму, которая должна использовать русский шрифт, но она его не распознает. Для того, что бы она отображала русский...

В консоли вместо русского языка выводятся вопросительные знаки - C++
Столкнулся с такой проблемой. В консоли вместо русского языка выводятся вопросительные знаки (???? ?? ??). setlocale(LC_ALL,...

Фильтрация русского текста - C++
есть задача. Создать программу, фильтрующую текст, введенный с клавиатуры. Задача программы заключается в считывании текста и...

ввод русского текста в c++ - C++
при вводе русского вопроса &quot;кто ты?&quot; программа не воспринимает его. и выводит &quot;I can't answer for this question. What is the answer?&quot;. Т.е....


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

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

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