Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5

Русик консоли

12.02.2010, 21:06. Показов 3150. Ответов 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");
}
Дело в том, что мне как-бы курсач надо русифицыровать, а то преподы обижаются, что они мол аглицкого не знают..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2010, 21:06
Ответы с готовыми решениями:

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

Реализация кроссфплатформенности консоли, разрешение консоли
Можно ли как-то реализовать просчёт количества пикселей экрана? Просто есть вот такая программа, анимация снега, и если запускаешь её на...

считывание с консоли ( не с клавы, а именно с консоли)
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

38
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
13.02.2010, 19:01  [ТС]
Студворк — интернет-сервис помощи студентам
что-то типа:
C++
1
2
char *buf = new char[500];
operator << (const char *s) { CharToOem(s,buf); return buf; }
Добавлено через 34 секунды
я вообщето не шарю как это делать поэтому и спрашиваю
0
 Аватар для AnonymC
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
13.02.2010, 19:25
outoftime, код не мой,код с темы Русского шрифта..зы таки не понял..
Цитата Сообщение от outoftime Посмотреть сообщение
operator << (const char *s) { CharToOem(s,buf); return buf; }
ты так хочешь русский текст выводить что ли
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
13.02.2010, 21:13  [ТС]
ты перегружал когда-то операторы ==, ++, --, !=, * и т.д. для собственных класов?
я хочу перегрузить оператор "<<" для cout-a из стандартной библиотеки, что-бы он в случаи получения строки сначала ее русифицыровал, после чего выводил.
0
32 / 34 / 3
Регистрация: 27.12.2009
Сообщений: 106
13.02.2010, 22:12
а извращением с фаром никто не пользовался? плюс такого метода - то, что он универсален для всех языков программирования
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
13.02.2010, 22:24  [ТС]
ailia, ты не поверишь, но я комплексую когда слышу это название..
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
21.02.2010, 11:55
интересно... а можно ли замутить перегрузку cout или printf чтоб стазу выполнялась функция
Цитата Сообщение от VAN32 Посмотреть сообщение
char buff[256];
char* Rus(const char *str)
{
CharToOem(str,buff);
return buff;
}
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 12:09  [ТС]
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"
        "конец.";
Никто не будет принебрегать этим способом вывода нужного нам текста, т.к. он намного приятней, а ограничение избавляет нас этого счастья, так что лучше перестраховатся
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
21.02.2010, 12:22
я имею в виду при работе с текстом, допустим
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);
вводимые в окне с клавы буквы выводятся опять же не корректно, но записываются в файл по русски, при считывании опятьже с включенными строками программе тож не корректны
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 12:27  [ТС]
cibertronic, перегрузите операторы ввода/вывода моим методом и сообщите результат
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
21.02.2010, 12:35
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 минуту
в общем такие ошибки
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 13:13  [ТС]
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
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <sstream>
#include <cstring>
#include <string>
#include <windows.h>
 
using namespace std;
 
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;
}
 
istream &operator >> (istream &in, char *text)
{
    int now = in.tellg(), count = 1, top = 0;
    while (in.get() == ' ');
    while (in.get() != ' ') ++count;
    char *buf = new char[count],
        *s = new char[count];
    in.seekg(now);
    while ( buf[top] = in.get() == ' ');
    while ( buf[++top] = in.get() != ' ');
    buf[top-1] = '\0';
    CharToOem(buf, s);
    text = s;
    return in;
}
 
int main()
{
   /* string s;
    getline(cin, s);
    stringstream tmp;
    tmp << s;
    while (tmp >> s)
        if (s.size() == 5) cout << "сурок ";
        else cout << s << " ";*/
    char *text = new char[500];
    freopen("in.txt","r",stdin);
    cin >> text;
    cout << text;
    system("pause");
    return 0;
}
Не знаю что здесь не так, наверное конвертирование происходит дважды и уже раз конвертированый текст не нужно еще раз пропускать черех CharToOem()

Добавлено через 2 минуты
cibertronic, какой у вас компилятор?? у меня wxDev-C++ в настройках компилятор MingW

Добавлено через 2 минуты
GCC Default copmpiler

Добавлено через 17 минут
С записью в файл нужно подумать, скорее всего в файл надо писать неперегружно, перегрузить надо только для вывода на екран
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
21.02.2010, 13:15
я на borland C++ 5.02 пишу. есть еще borland C++ builder v6.0 но он консоли не пишет, точнее не компилит. он формы выдает пустые после компиляции
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 13:16  [ТС]
cibertronic, не пожалейте 60 метров скачайте нормальный компидятор: wxDev-C++
0
 Аватар для cibertronic
257 / 144 / 18
Регистрация: 27.12.2009
Сообщений: 909
21.02.2010, 13:22
а при этом всем в выше описанном исходнике вот такие ошибки:
Info :Compiling C:\Documents and Settings\Валентина\Рабочий стол\src\russkij2.cpp
Error: russkij2.cpp(2,2):Unable to open include file 'SSTREAM.h'
Warn : string.h(549,3):Functions containing for are not expanded inline
Warn : string.h(557,3):Functions containing while are not expanded inline
Warn : string.h(563,3):Functions containing for are not expanded inline
Warn : string.h(575,3):Functions containing for are not expanded inline
Error: string.cc(662,24):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(662,26):Statement missing ;
Error: string.cc(663,44):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(663,24):While statement missing )
Error: string.cc(666,33):Undefined symbol 'size_type'
Error: string.cc(666,33):Statement missing ;
Error: string.cc(667,26):Undefined symbol 'i'
Error: string.cc(667,59):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(667,38):While statement missing )
Warn : string.cc(675,2):Function should return a value
Warn : string.cc(675,2):'c' is declared but never used
Warn : string.cc(675,2):Parameter 'is' is never used
Error: string.cc(679,33):Undefined symbol 'size_type'
Error: string.cc(679,33):Statement missing ;
Error: string.cc(681,16):Undefined symbol 'x'
Error: string.cc(682,30):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(682,32):Statement missing ;
Error: string.cc(684,28):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(684,30):Statement missing ;
Error: string.cc(687,30):Qualifier 'traits_type' is not a class or namespace name
Error: string.cc(687,32):Statement missing ;
Warn : string.cc(689,2):Parameter 's' is never used
Warn : russkij2.cpp(26,23):Possibly incorrect assignment
Warn : russkij2.cpp(27,25):Possibly incorrect assignment
Warn : russkij2.cpp(32,2):Parameter 'text' is never used
Error: russkij2.cpp(44,13):Call to undefined function 'freopen'
Error: russkij2.cpp(44,34):Undefined symbol 'stdin'
Error: russkij2.cpp(45,11):Ambiguity between 'operator >>(istream &,char *)' and 'istream::operator >>(char *)'
Error: russkij2.cpp(46,12):Ambiguity between 'operator <<(ostream &,const char *)' and 'ostream::operator <<(const char *)'
Warn : russkij2.cpp(49,2):'text' is assigned a value that is never used

Добавлено через 1 минуту
не, вопервых накладно выйдет по 3 р за мег, при неустойчивом соединении замучаюсь платить, да и потом я к этому привык

Добавлено через 44 секунды
ладно.....еще почитаю книжки.... спс
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
21.02.2010, 15:35
Проблема вообще надуманая!
Просто компилируйте прогу в юникоде и никаких проблем с кириллицей!
Code
1
2
3
4
OpenConsole()
Print("Привет мир")
Input()
End
Вложения
Тип файла: rar Консоль.rar (1.4 Кб, 18 просмотров)
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 15:50  [ТС]
PB, а нука, с этого места по-подробнее..
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
21.02.2010, 15:59
Ну, нужно заставить компилятор, создать приложение формата Unicode.
Правда, компилятор должен поддерживать эту опцию. Не все компиляторы это умеют делать.
Миниатюры
Русик консоли  
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
21.02.2010, 16:38  [ТС]
PB, вы, собственно, чем пользуетесь?
0
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
21.02.2010, 16:45
Цитата Сообщение от outoftime Посмотреть сообщение
вы, собственно, чем пользуетесь
Этим
Но ведь наверняка есть сишные компиляторы, поддерживающие юникод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2010, 16:45
Помогаю со студенческими работами здесь

Отобразить в консоли:увеличить и уменьшить длину массива на заданное ранее из консоли число
Доброго дня суток, исходный код и задача есть Подскажите пж, не получается реализовать некоторые операции в консоли:увеличить и уменьшить...

Как запустить программу из консоли без блокировки консоли?
Вводу например firefox в консоль открывается приложение и в консоль больше ничего ввести нельзя пока не закроешь приложение ...

Вызов консоли для другой вкладки из консоли js
Всем привет! Пишу скрипт для авто нажатия определенных элементов на сайте в определенной последовательности, чтобы в ручную не...

Возможно ли, работая в консоли хрома, сохранять информацию, помимо логов консоли (console.log), куда-нибудь ещё?
Всем, привет :) Подскажите пожалуйста, возможно ли на js, работая в консоли хрома, сохранять текстовую инфу по мимо логов консоли...

Циклы: вывести в первую строчку консоли строку из 10 заданных букв и во вторую строчку консоли из 5 таких букв
Задана буква. Вывести в первую строчку консоли строку из 10 таких букв и во вторую строчку консоли из 5 таких букв.


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru