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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
#1

Принятие русского шрифта в консоли - C++

24.08.2011, 20:40. Просмотров 1277. Ответов 6
Метки нет (Все метки)

Здрасте! Я написал програму, которая должна использовать русский шрифт, но она его не распознает. Для того, что бы она отображала русский текст, я добавил команду
C++
1
setlocale( LC_ALL,"Russian" );
но программа не способна воспринимать кирилицу, то есть если запустить такую программу:
C++
1
2
3
4
5
6
...
cout << "введите ваше имя: ";
char name[20];
cin.getline(name, 20);
cout << "Вас зовут: " << name;
..
и написать имя русскими буквами, то вот, что получится:
введите ваше имя: Яшман
Вас зовут: ?и┐

Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2011, 20:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Принятие русского шрифта в консоли (C++):

кодировка русского шрифта - C++
/*вроде в консоли выходят русский шрифт, но когда выводится новый массив то выходят какие каракули) посмотрите пожалуйста кто умеет*/ ...

Альтернативный способ русского шрифта? - C++
#include &lt;iostream&gt; int main(){ std::cout &lt;&lt; &quot;ЋвўҐв: &quot;; return 0; } Эту строчку нашел в одном исходнике. Как это называется,...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
24.08.2011, 20:46 #2
Русские шрифты в консоли
Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
24.08.2011, 21:07  [ТС] #3
Там нет ничего полезного для меня, потому как о принятии русского шрифта там ничего не говорится
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
24.08.2011, 22:31 #4
Не пробовали ?
C++
1
 locale::global(locale("rus"));
Добавлено через 1 минуту
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Можно ещё

Добавлено через 2 минуты
Ну или так

C++
1
2
std::locale loc("Russian");
std::locale::global(loc);
Добавлено через 2 минуты
Ну или вот так:
lang.h
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
#include <windows.h>
char* Rus(const char* text);
 
char bufRus[256];
char* Rus(const char* text)
{
   CharToOem(text, bufRus);
   return bufRus;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
#include <iostream.h>
#include <conio.h>
#include "russian.h" // Нужно подключить
void main()
{
  cout<<" Добро пожаловать в мир программирования"<<endl;
 
  getch();
}
Oleg_SK
5 / 5 / 2
Регистрация: 15.09.2010
Сообщений: 25
25.08.2011, 03:08 #5
Цитата Сообщение от Yashman Посмотреть сообщение
Как это исправить?
Недавно сталкивался с аналогичной проблемой (правда, я с ней столкнулся не при работе с со строками в стиле языка C, а при использовании объектов класса wstring). Вот мой топик: Непонятка с кодировкой , я там приводил один из вариантов решения этой проблемы... Вкратце, решение в том, что нужно выводить заданные в программе строки в одной кодировке, а cтроки введенные в ответ на запрос программы - в другой кодировке. Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
 
using std::wstring;
using std::getline;
using std::wcout;
using std::wcin;
using std::endl;
 
int _tmain(int argc, _TCHAR* argv[])
{
        wstring c;
 
        setlocale( LC_ALL, "russian_Russia.1251" );
        wcout << L"Тест_1" << endl;
 
        setlocale(LC_ALL, "russian_Russia.866");
        getline(wcin,c);
        wcout << c << endl;
        
        setlocale( LC_ALL, "russian_Russia.1251" );
        wcout << L"Тест_2" << endl;
 
        wcout << endl;
        system("PAUSE");
        return 0;
}
Добавлено через 41 минуту
Yashman
В общем, твой код нужно изменить так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
        ...
    setlocale( LC_ALL,"Russian" );
    cout << "введите ваше имя: ";
    
    char name[20];
    cin.getline(name, 20);
    
    cout << "Вас зовут: ";
 
    setlocale(LC_ALL, "russian_Russia.866");
    cout << name;
        ...
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
25.08.2011, 03:54 #6
Тебе нужно изменить шрифт в консоли на Lucia, если и это не поможет то читай информацию по wchar.
Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90
25.08.2011, 15:43  [ТС] #7
Спасибо всем, кто не оставляет друга в беде! Отдельное спасибо Oleg_SK, по-моему самый удобный способ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2011, 15:43
Привет! Вот еще темы с ответами:

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

Цвет шрифта в консоли - C++
Здравствуйте, уважаемое сообщество! Подскажите, пожалуйста, есть ли возможность установить цвет для определенных символов в консоли (не...

Размер шрифта в консоли - C++
Как програмно настроить размер шрифта wxDev-C++

Изменение размеров и шрифта консоли - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { const int ROW=5; const int COLUMN=5; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.08.2011, 15:43
Ответ Создать тему
Опции темы

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