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

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

Войти
Регистрация
Восстановить пароль
 
MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
#1

Русский язык в консоль - C++

22.02.2013, 12:14. Просмотров 1010. Ответов 8

Привет всем, не знаю куда ещё это отнести

Не по теме:

(модеры сори если не сюда и если доставил больше работы)


Я помню когда начинал изучать С/С++, была проблемой вывести русский текст в консоль, было решение сменить кодировку вывода, но тогда другая проблема, не возможно было использовать псевдографику...

Не по теме:

Или я был лохом

И по этому написал пару функций, принцип прост и поймет даже самый новичок. При этом остаться возможность, использовать псевдо-графику.
Вот описание.
Russian Сonsole Text (RCT) ver. 1.0
файлы (RCT.h)
можно кинуть в корень проекта и подключить как обычно:
C++
1
#include "RCT.h"
Или кинуть в include во внутренних файлах компилятора у меня например "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include"
и тогда подключение будет такое:
C++
1
#include <RCT.h>
Суть в том чтобы взять на вход кракозябру и вывести текст.
есть функция по работе с char[size] и с более новым std::string.
вот их прототипы:
C++
1
2
3
void convertText(char*, int);
std::string convertText(std::string&);
std::string convertTextO(std::string);
Первая просто переводит кракозябру в читаемый текст пример:
C++
1
2
3
char text [100] = {"Что ты делаешь, напиши мне на E-Mail [email]MaRKer.nsk@ya.ru[/email] "};
convertText(text, 100);
cout<<text<<endl;
Разница между второй и третей, заключается в том, что во второй результат конвертации сохраняется. А третья используется для вывода.
пример:
C++
1
2
3
string text = "Ты серьёзно? ";
cout<<text2<<convertTextO(text)<<endl; // выводит но не сохраняет
cout<<text2<<convertText(text)<<endl; // выводит и сохраняет
0
Вложения
Тип файла: rar RCT.rar (767 байт, 10 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2013, 12:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русский язык в консоль (C++):

Как заставить консоль понимать русский язык? (русские шрифты в консоли) - C++
Добрый вечер. Нужна ваша помощь С++ не понимает русский язык

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

русский язык - C++
Помогите пишу задачу,как сделать чтоб всё выводило на русском языке? какая функция? или фрагмент кода? cout&lt;&lt;&quot;Dobavlenie informacii...

Русский язык в C++ - C++
Как в C++ консоли подключить русский язык желательной setLoceta(Rus) такой функцией, у меня не получилось её использваоть

Русский язык - C++
Уже задолбался с попыткой заставить выводить считанные русские строки. Имеем. По идее там должна быть функция CharToOem но она коверкает....

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

8
Sigma214
42 / 43 / 9
Регистрация: 01.05.2012
Сообщений: 178
22.02.2013, 12:39 #2
C++
1
2
3
4
5
#include <locale.h>
int main()
{
       setlocale(LC_ALL,"Russian");
}
0
MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
22.02.2013, 12:46  [ТС] #3
Цитата Сообщение от Sigma214 Посмотреть сообщение
C++
1
2
3
4
5
#include <locale.h>
int main()
{
       setlocale(LC_ALL,"Russian");
}
Я знаю про это но с таким вариантом вы уже, не сожмите использовать псевдо графику. Например одинарная линия двойная и тд. =)
0
SatanaXIII
Супер-модератор
Эксперт С++
5643 / 2678 / 252
Регистрация: 01.11.2011
Сообщений: 6,574
Завершенные тесты: 1
22.02.2013, 13:08 #4
Хм. Работает. Но вот не лучше ли было бы для перекодировки использовать коды символов, а не их значения?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char convertChar(char ch)
{
    char buffCh = ch;
    switch (ch)
    {
    case 'А': {buffCh = 'Ђ';} break;
    case 'Б': {buffCh = 'Ѓ';} break;
    case 'В': {buffCh = '‚';} break;
        // ...
    case 'ю': {buffCh = 'о';} break;
    case 'я': {buffCh = 'п';} break;
    }
    return buffCh;
}
P.S. Для понимания.
0
MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
22.02.2013, 13:30  [ТС] #5
SatanaXIII, оу спасибо за "понимание" давно искал=) когда то давно потерял), Ну это первая версия буду улучшать и всё ровно хотел перейти на коды, а это пока вариант на быструю руку) так на паре делать нечего было))=) накидал набросок)
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
22.02.2013, 20:19 #6
C++
1
setlocale(0,"");
0
MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
23.02.2013, 10:41  [ТС] #7
Цитата Сообщение от sovaz1997 Посмотреть сообщение
C++
1
setlocale(0,"");
а здесь то же самое, русский текст есть а вот возможность использовать псевдографику уже, увы не возможно =(
0
ITishnik
7 / 7 / 0
Регистрация: 07.01.2013
Сообщений: 75
23.02.2013, 11:06 #8
C++
1
2
3
4
5
#include <clocale>
{
setlocale(LC_ALL,"Russian")
//::::::::::::
}
0
MaRKerNSK
24 / 11 / 1
Регистрация: 26.11.2012
Сообщений: 110
Записей в блоге: 2
23.02.2013, 13:04  [ТС] #9
да что вы все одно и то же, говорю же это включает русский язык, но выключатель псевдографику.
0
23.02.2013, 13:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2013, 13:04
Привет! Вот еще темы с ответами:

Русский Язык!!! - C++
Как в переменную char A; занести Ф только чтоб после отоброжалось не каракули а Ф! и библиотеку!

Русский язык в Си - C++
Здравствуйте, Столкнулся с банальной проблемой При вводе-выводе в текстовый файл и в консоль при обращении непосредственно из main()...

Русский язык - C++
Нужно написать программу, которая исправляла бы ошибки после Ж,Ч,Ш,Щ(Ы,Я,Ю на И,А,У). Учитывая исключения: Жюри, Брошюра, парашют. ...

Русский язык - C++
char szNonColorEmbeddedMsg; int iNonColorEmbeddedMsgLen = 0; for (size_t pos = 0; pos &lt; strlen(szMsg) &amp;&amp; szMsg != '\0'; pos++) ...


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

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

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