Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
04.01.2013, 14:34     Вывод русского текста в консоли #1
Доброго времени суток.Помогите пожалуйста в таком вопросе.Вот простенькая программа,которой нужно ввести имя,а она выведет Привет,введеное имя. Но проблема в том,что благодаря использваванию 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;
 
}
Миниатюры
Вывод русского текста в консоли  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stivento
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 13
04.01.2013, 14:43     Вывод русского текста в консоли #2
А обязательно нужен setlocale, я пользуюсь system("chcp 1251")?
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
04.01.2013, 14:45     Вывод русского текста в консоли #3
Поможет.

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

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



Благодарю,помогло,сначала не помогло конечно,но подключил еще # include <windows.h> и в строке выставил шрифт Lucida Console и все отлично работает.Благодарю!
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
04.01.2013, 15:44     Вывод русского текста в консоли #5
Чтобы постоянно не менять шрифт в консоли, есть еще один вариант. Надо убрать setlocale, а вместо типа char использовать wchar_t, и соответственно вместо cin и cout использовать wcin и wcout. Также есть куча аналогов функций, которые работают с char, для wchar_t.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 15:48     Вывод русского текста в консоли #6
nonedark2008, а постоянно шрифт в консоли и не нужно менять. Можно просто по умолчанию поставить нужный шрифт
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
04.01.2013, 15:50     Вывод русского текста в консоли #7
coloc, но если программу перетащить на другой компьютер, то там тоже придется менять, что не хорошо >_>
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.01.2013, 16:03     Вывод русского текста в консоли #8
nonedark2008, я не думаю, что эти танцы с бубнами типа wchar_t легче, чем пару кликов мышкою на окне с консолью. Тем более зачем кому то перетащивать свои программы на чужой компьютер? Чтобы похвастаться какой супер инновационный морской бой?
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
04.01.2013, 16:19     Вывод русского текста в консоли #9
Цитата Сообщение от coloc Посмотреть сообщение
Тем более зачем кому то перетащивать свои программы на чужой компьютер?
Ну, например многим для сдачи задания - требуется его отослать преподу на почту. Неужто к письмо придется приписывать, что для нормальной работы программы требуется зайти туда-то, поменять что-то на что-то там и только потом уже запускать программу???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2013, 09:34     Вывод русского текста в консоли
Еще ссылки по теме:

Запись в файл русского текста C++
структуры и использование русского текста C++
В консоли вместо русского языка выводятся вопросительные знаки C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
05.01.2013, 09:34     Вывод русского текста в консоли #10
Цитата Сообщение от nonedark2008 Посмотреть сообщение
но если программу перетащить на другой компьютер, то там тоже придется менять, что не хорошо
Кто мешает программно поменять шрифт?
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Ну, например многим для сдачи задания - требуется его отослать преподу на почту.
Ну если препод не идиот, то всё будет нормально.
А если уж переходить на Юникод, то и консоль загоняйте под UTF-8.
Yandex
Объявления
05.01.2013, 09:34     Вывод русского текста в консоли
Ответ Создать тему
Опции темы

Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru