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

Русик консоли - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
12.02.2010, 21:06     Русик консоли #1
Я конешно понимаю что поднимаю эту тему тысячный раз, но все таки:
пишу на wxDev-C++ для русификации код:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale (LC_ALL,"Russian");
    cout << "Привет мир!" << endl;
    system("pause");
}
Дело в том, что мне как-бы курсач надо русифицыровать, а то преподы обижаются, что они мол аглицкого не знают..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2010, 21:06     Русик консоли
Посмотрите здесь:

круг в консоли C++
Кодировка в консоли C++
закрытие консоли C++
C++ Магазин в консоли
C++ Игра в консоли
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yamilramilev
 Аватар для yamilramilev
263 / 255 / 9
Регистрация: 08.10.2009
Сообщений: 554
12.02.2010, 21:34     Русик консоли #2
Вот смотри
VAN32
 Аватар для VAN32
27 / 27 / 2
Регистрация: 18.11.2009
Сообщений: 92
12.02.2010, 21:45     Русик консоли #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <iostream.h>
 
using namespace std;
 
int main (int argc, char *argv[])
{
  char a[]="Baш тeкcт";
  CharToOem(a,a);
 
  cout << a;
  getch();
  return 0;
}
Menificar
1 / 1 / 0
Регистрация: 10.02.2010
Сообщений: 5
12.02.2010, 21:57     Русик консоли #4
Или пиши в кодировке CP866(QT Creator например понимает эту кодировку) что наиболее удобно как мне кажется....
darkAngel
Технофашист
206 / 187 / 3
Регистрация: 11.03.2009
Сообщений: 829
12.02.2010, 22:45     Русик консоли #5
а можешь файлик подключить вот такой:
C++
1
2
3
4
5
6
7
8
//---Функция правильного отображения русских символов в console-приложениях--
char* Rus(char* mes){
 for(i=0;i<strlen(mes);i++){
  if (mes[i]>='А' && mes[i]<='п') mes[i]=char(int(mes[i])-64);
  if (mes[i]>='р' && mes[i]<='я') mes[i]=char(int(mes[i])-16);}
 return mes; //signed long int
}
//---------------------------------------------------------------------------
Я на первом курсе делал, когда не знал как руссифицировать консольку )

Добавлено через 1 минуту
ах да, только придётся вызывать эту функцию постоянно. ну типо так:
Rus("ПРИВЕТИК МИР!");
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
12.02.2010, 23:44  [ТС]     Русик консоли #6
Всем спасибо, но помог реально только VAN32.

Добавлено через 1 минуту
я остановился на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
char *Rus(char *text)
{
    char *buf = new char[100];
    CharToOem(text, buf);
    return buf;
}
 
int main()
{
    char *s;
    s = Rus("Привет мир!");
    printf("%s\n", s);
    system("pause");
}
Добавлено через 1 минуту
вот только мне это не нравится тем, что место под стоку не освобождается..
VAN32
 Аватар для VAN32
27 / 27 / 2
Регистрация: 18.11.2009
Сообщений: 92
13.02.2010, 09:47     Русик консоли #7
Цитата Сообщение от outoftime Посмотреть сообщение
Всем спасибо, но помог реально только VAN32.

Добавлено через 1 минуту
я остановился на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
char *Rus(char *text)
{
    char *buf = new char[100];
    CharToOem(text, buf);
    return buf;
}
 
int main()
{
    char *s;
    s = Rus("Привет мир!");
    printf("%s\n", s);
    system("pause");
}
Добавлено через 1 минуту
вот только мне это не нравится тем, что место под стоку не освобождается..
А так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <conio.h>
#include <windows.h>
#include <iostream.h>
 
char buff[256];
char* Rus(const char *str)
{
    CharToOem(str,buff);
    return buff;
}
 
int main (int argc, char *argv[])
{
  cout << Rus("Baш тeкcт");
  getch();
  return 0;
}
ZigaZaga
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 20
13.02.2010, 12:35     Русик консоли #8
а так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#icnlude <windows.h>
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    std::cout << "Зига Зага" ;
}
НО надо ещё в умолчаниях консольки поменять шрифт на ЛЮСИДА.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.02.2010, 16:57  [ТС]     Русик консоли #9
ZigaZaga, не пашет
жаль конечно, но пришлось мораться и все строки отдельно переводить и выводить..
ZigaZaga
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 20
13.02.2010, 17:01     Русик консоли #10
на самом деле это точно пашет в вижл студиях... как в других - понятия не имею))
думал может поможет.
cibertronic
 Аватар для cibertronic
255 / 142 / 13
Регистрация: 27.12.2009
Сообщений: 893
13.02.2010, 17:12     Русик консоли #11
я ваще не парюсь, а пишу
C++
1
system("echo ваш русский текст какой хоите");
а такой код пишет взаголовке название
C++
1
system("title моя прогищЯ");
но тут тоже следует учесть что это для виндовс будет понятно точно....как с другими ОС будет работать не знаю. собственно это код для командной строки, может и будет в других....
кому интересно поищите в гугле создание *.bat *.cmd ))
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.02.2010, 17:20  [ТС]     Русик консоли #12
ZigaZaga, Visual Studio 2008 Express Edition - не пашет
cibertronic
 Аватар для cibertronic
255 / 142 / 13
Регистрация: 27.12.2009
Сообщений: 893
13.02.2010, 17:28     Русик консоли #13
ну как? работает же? )
ZigaZaga
0 / 0 / 0
Регистрация: 06.01.2010
Сообщений: 20
13.02.2010, 17:33     Русик консоли #14
outoftime , у меня это пашет в MSVC 6.0 и MSVC 2008 Professional Edition..
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.02.2010, 17:38  [ТС]     Русик консоли #15
мне грубо говоря на борладн си++ 3.1 надо))
но так как у меня вышло прогрузить препода юзать wxDev-C++ то надо его юзать, кстати компалятор MinGW
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
13.02.2010, 17:48     Русик консоли #16
outoftime, вот
я вот таким раком это делаю:
Код:

// установить вручную шрифт Lucida Console в свойствах окна консоли
// и запомнить это для всех окон с этим именем
// записать в начале программы строку
#include <windows.h>
// записать в начале функции main ( после строки с символом { )
// две следующих строки
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Добавлено через 26 секунд
outoftime, мне это всегда помогает
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.02.2010, 18:41  [ТС]     Русик консоли #17
МедведЪ, непомогло..
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
13.02.2010, 18:45     Русик консоли #18
outoftime,
C++
1
2
3
4
5
6
7
8
9
10
11
12
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
int main()  {
    cout << Rus("Привет ,Лопух!")<< endl;
    system("pause");
    return 0;
    
}
Добавлено через 50 секунд
C++
1
system("chcp 1251");
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.02.2010, 18:49  [ТС]     Русик консоли #19
МедведЪ, подскажи лучше как перегрузить оператор "<<" для std::cout что-бы добавить русификацию для строк
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2010, 18:52     Русик консоли
Еще ссылки по теме:

C++ Меню на консоли
C++ Анимация в консоли
C++ Кириллица в консоли

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

Или воспользуйтесь поиском по форуму:
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
13.02.2010, 18:52     Русик консоли #20
outoftime, не понял
Yandex
Объявления
13.02.2010, 18:52     Русик консоли
Ответ Создать тему
Опции темы

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