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

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

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

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

04.01.2013, 14:34. Просмотров 1710. Ответов 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;
 
}
Миниатюры
Вывод русского текста в консоли  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2013, 14:34     Вывод русского текста в консоли
Посмотрите здесь:
Вывод русского текста в консоли C++
C++ Ввод в файл с консоли русского текста
Вывод русского текста C++
C++ Неправильное отображение русского текста в консоли при использовании setlocale(LC_ALL, "Russian")
Вывод текста в поток консоли C++
C++ Принятие русского шрифта в консоли
В консоли вместо русского языка выводятся вопросительные знаки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stivento
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 17
04.01.2013, 14:43     Вывод русского текста в консоли #2
А обязательно нужен setlocale, я пользуюсь system("chcp 1251")?
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);
Chernobyl
212 / 212 / 67
Регистрация: 30.09.2012
Сообщений: 542
04.01.2013, 15:08  [ТС]     Вывод русского текста в консоли #4
Цитата Сообщение от Afflicted Посмотреть сообщение
Поможет.

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



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

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

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

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