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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
#1

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

12.02.2010, 21:06. Просмотров 1891. Ответов 38
Метки нет (Все метки)

Я конешно понимаю что поднимаю эту тему тысячный раз, но все таки:
пишу на 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++
Помогите разобраться с графикой в консоле. компилирую код в Dev C++ #include &lt;iostream&gt; #include &lt;windows.h&gt; int main(){ ...

Мусор в консоли - C++
Ищу подстроку в строке и забиваю её в массив, в итоге в последнем cout выводится не то, что нужно: вместо &quot;ло в бою, очень ло&quot; выводится...

Очистка консоли - C++
Здравствуйте подскажите пожалуйста как мне на с++ (каким способом) можно в процессе исполнения программы очистить все записи в консоле ??

Фокус консоли - C++
Как мне реализовать условие: Если консоль потеряла фокус, установить его... Мне нужно чтобы пользователь не смог при включенной...

Круг в консоли - C++
Всем привет! Буду благодарен, если кто-нибудь сможет подсказать решение. И так, имеется класс Circle, задается радиус и нужно...

закрытие консоли - C++
в чем допущена оплошность:требуется ввести размер матрицы,вводим допустим 5,происходит вывод на экран,далее следует выбор: удалить одну...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
13.02.2010, 17:48     Русик консоли #16
outoftime, вот
я вот таким раком это делаю:
Код:

// установить вручную шрифт Lucida Console в свойствах окна консоли
// и запомнить это для всех окон с этим именем
// записать в начале программы строку
#include <windows.h>
// записать в начале функции main ( после строки с символом { )
// две следующих строки
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Добавлено через 26 секунд
outoftime, мне это всегда помогает
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2010, 18:41  [ТС]     Русик консоли #17
МедведЪ, непомогло..
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 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║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2010, 18:49  [ТС]     Русик консоли #19
МедведЪ, подскажи лучше как перегрузить оператор "<<" для std::cout что-бы добавить русификацию для строк
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
13.02.2010, 18:52     Русик консоли #20
outoftime, не понял
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2010, 19:01  [ТС]     Русик консоли #21
что-то типа:
C++
1
2
char *buf = new char[500];
operator << (const char *s) { CharToOem(s,buf); return buf; }
Добавлено через 34 секунды
я вообщето не шарю как это делать поэтому и спрашиваю
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
13.02.2010, 19:25     Русик консоли #22
outoftime, код не мой,код с темы Русского шрифта..зы таки не понял..
Цитата Сообщение от outoftime Посмотреть сообщение
operator << (const char *s) { CharToOem(s,buf); return buf; }
ты так хочешь русский текст выводить что ли
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2010, 21:13  [ТС]     Русик консоли #23
ты перегружал когда-то операторы ==, ++, --, !=, * и т.д. для собственных класов?
я хочу перегрузить оператор "<<" для cout-a из стандартной библиотеки, что-бы он в случаи получения строки сначала ее русифицыровал, после чего выводил.
ailia
27 / 26 / 1
Регистрация: 27.12.2009
Сообщений: 106
13.02.2010, 22:12     Русик консоли #24
а извращением с фаром никто не пользовался? плюс такого метода - то, что он универсален для всех языков программирования
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2010, 22:24  [ТС]     Русик консоли #25
ailia, ты не поверишь, но я комплексую когда слышу это название..
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
21.02.2010, 11:55     Русик консоли #26
интересно... а можно ли замутить перегрузку cout или printf чтоб стазу выполнялась функция
Цитата Сообщение от VAN32 Посмотреть сообщение
char buff[256];
char* Rus(const char *str)
{
CharToOem(str,buff);
return buff;
}
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.02.2010, 12:09  [ТС]     Русик консоли #27
C++
1
2
3
4
5
6
7
8
ostream &operator << (ostream &out, const char *text)
{
    int n = strlen(text);
    char *s = new char[ n+1 ];
    CharToOem(text, s);
    out.write(s, n);
    return out;
}
Добавлено через 16 секунд
cibertronic, так что-ли?

Добавлено через 6 минут
Цитата Сообщение от cibertronic Посмотреть сообщение
char buff[256];
char* Rus(const char *str)
{
CharToOem(str,buff);
return buff;
}
Это плохой вариант, а вдруг мы захотим взять и написать менюшку следующим блоком:
C++
1
2
3
4
5
cout << "первая строка из кучи, ну просто очень большого количества символом\n"
        "и вдруг она продолжается в следующей строчке\n"
        "и в следующей\n"
        "и т.д...\n"
        "конец.";
Никто не будет принебрегать этим способом вывода нужного нам текста, т.к. он намного приятней, а ограничение избавляет нас этого счастья, так что лучше перестраховатся
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
21.02.2010, 12:22     Русик консоли #28
я имею в виду при работе с текстом, допустим
C++
1
2
 SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
дает нам вывод русских букв в теккстовый документ, а
C++
1
2
3
4
5
6
char buff[256];//буфер
char* Rus(const char *str)
{
    CharToOem(str,buff);//Кодировка UTF-8
    return buff;
}
при использавании функции cout<<Rus("текст")<<endl;
текст введенный в ковычках на экрап русский, неплохо было бы это объеденить как нибудь, и может даже в отдельный заголовочный файл записать, чтоб при необходимости включить в программу..... ах да и еще... при в ключении строк
C++
1
2
 SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
вводимые в окне с клавы буквы выводятся опять же не корректно, но записываются в файл по русски, при считывании опятьже с включенными строками программе тож не корректны
outoftime
║XLR8║
508 / 430 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.02.2010, 12:27  [ТС]     Русик консоли #29
cibertronic, перегрузите операторы ввода/вывода моим методом и сообщите результат
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2010, 12:35     Русик консоли
Еще ссылки по теме:

Создание консоли - C++
подскажите код: менюшка: 1. вывести на экран 2. сделать тото. 3. выйти вопрос - как это реализуется в коде? чтоб меню...

шрифт в консоли - C++
как увеличить или уменьшить шрифт в консоли?

Локализация консоли - C++
Всем привет. Дело такое. Есть программа, которая при определенных условиях должна заменять символ в строке на 219 символ ASCII...

Текст в консоли - C++
Ребят, какие есть функции форматирования текста в консоли? В частности, мне нужно следующее: а) чтобы в консоли текст на след. строку...

Кириллица в консоли - C++
Знаю что вопрос уже не раз задавали, но там люди программировали в какой-либо из IDE. Я же программирую на Windows в MinGW(эмулятор g++,...


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

Или воспользуйтесь поиском по форуму:
cibertronic
256 / 143 / 13
Регистрация: 27.12.2009
Сообщений: 893
21.02.2010, 12:35     Русик консоли #30
I
Error: klient.cpp(35,7):Ambiguity between 'operator <<(ostream &,const char *)' and 'ostream::operator <<(const char *)'
Error: klient.cpp(36,9):Ambiguity between 'operator <<(ostream &,const char *)' and 'ostream::operator <<(const char *)'

Добавлено через 31 секунду
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
30
31
32
33
34
35
36
37
38
39
#include <iostream.h>
#include <fstream.h>
#include <conio.h>
#include <windows.h>
 
/*char buff[256];//буфер
char* Rus(const char *str)
{
    CharToOem(str,buff);//Кодировка UTF-8
    return buff;
} */
 
ostream &operator << (ostream &out, const char *text)
{
    int n = strlen(text);
    char *s = new char[ n+1 ];
    CharToOem(text, s);
    out.write(s, n);
    return out;
}
 
 
 
 
 
void main()
{
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
char num[10],name[10];
ofstream output("base.txt",ios::app); // открытие файла для записи
cin>>num>>name;
cout<<"данные записаны в файл. ожидаю новых данных"<<endl;
output<<num<<" "<<name<<endl;
output.close();
getch();
}
Добавлено через 1 минуту
в общем такие ошибки
Yandex
Объявления
21.02.2010, 12:35     Русик консоли
Ответ Создать тему
Опции темы

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