║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

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

12.02.2010, 21:06. Показов 3447. Ответов 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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,361
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru