Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Dimka-novitsek
14 / 14 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
1

Русификация.Работает-супер! Обьяснитте, как это работает?

04.08.2013, 17:46. Просмотров 1008. Ответов 15
Метки нет (Все метки)

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
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
char* Rus(const char* text);
int main ()
{
    int i; // счётчик цикла
    int sum=0; // счётчик суммы чисел
    int a,b;// объявление переменных
    cout << Rus ("Введите первое число");
    cin >> a;// пользователь присвает значение  переменной a
    cout << Rus ("Введите второе число");
    cin >> b;// пользователь присваивает значение переменной b
    for (i=a ; i<=b ; i++ )
    {
        sum=sum+i;
    }
    cout << Rus ("Сумма чисел от ") << a ;
    cout << Rus (" до ") << b ;
    cout << Rus (" равна ") << sum ;
    getch ();
    return 0;
}
// ф-ция русификации
 char buf[256]; // за пределами функции. ПИШЕМ В КВАДРАТНЫХ СКОБКАХ!!!
 char* Rus(const char* text)
 {
       CharToOem(text, buf);
       return buf;
 }
Добавлено через 5 минут
Даже начиная с того- в каких случаях необходио все-таки писат за приделами main ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 17:46
Ответы с готовыми решениями:

Как это работает? Я хочу спросить как работает C++ и где можно про него почитать
Привет, котоны. Заранее благодарю. Это будет моих общих вопросов нить, т.к....

Как это работает?
Здравствуйте, можете, пожалуйста, поэтапно объяснить как работает приведенный...

Как это работает?
Читаю я кое какой &quot;учебник&quot;, и в нём появился такой вот кусок кода int input...

Как это работает?
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; int main() {...

Как это работает
Здравствуйте уважаемые форумчане!Как это работает? Как например предотвратить...

15
Даниил
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
04.08.2013, 18:11 2
Как я помню функция CharToOem делает из Юникода русские буквы, но не уверен, так как мне никто не объяснял как это работает

Добавлено через 2 минуты
Функция CharToOem преобразует строку в определенный OEM набор символов.

Добавлено через 39 секунд
Вот информация - тык
1
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2013, 18:14 3
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Даже начиная с того- в каких случаях необходио все-таки писат за приделами main ?
ну напиши в пределах main
2
Dimka-novitsek
14 / 14 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 18:38  [ТС] 4
А что присходит в строках 7 и 29, точнее что обозначает звёздочка?
0
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2013, 18:40 5
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
что обозначает звёздочка?
указатель
0
Dimka-novitsek
14 / 14 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 18:50  [ТС] 6
Указатель на что? Как он действует?
0
Jupiter
Каратель
Эксперт С++
6570 / 3991 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2013, 18:52 7
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Указатель на что?
на char

Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Как он действует?
он никак не действует, он сущность
Литература C++
1
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,803
Записей в блоге: 2
Завершенные тесты: 1
04.08.2013, 18:55 8
Цитата Сообщение от Croessmah Посмотреть сообщение
Русификация.Работает-супер!
Еще как вариант:
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
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
int main ()
{
    SetConsoleCP ( 1251 ) ;
    SetConsoleOutputCP ( 1251 ) ;
    int i; // счётчик цикла
    int sum=0; // счётчик суммы чисел
    int a,b;// объявление переменных
    cout << "Введите первое число";
    cin >> a;// пользователь присвает значение  переменной a
    cout << "Введите второе число";
    cin >> b;// пользователь присваивает значение переменной b
    for (i=a ; i<=b ; i++ )
    {
        sum=sum+i;
    }
    cout << "Сумма чисел от " << a ;
    cout << " до " << b ;
    cout << " равна " << sum ;
    getch ();
    return 0;
}
Шрифт в консоли - Lucida Console
2
coloc
погромист
412 / 248 / 30
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.08.2013, 18:55 9
Dimka-novitsek, никто пересказывать учебник не собирается. В любой книге можно найти, что такое указатель
0
iRomul
159 / 100 / 14
Регистрация: 17.10.2012
Сообщений: 483
Завершенные тесты: 1
04.08.2013, 19:00 10
Только мне не понятно, из чего получается эта OEM строка. Какая кодировка у исходного текста?
0
Dimka-novitsek
14 / 14 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 19:10  [ТС] 11
Вот не знаю, если вопрос ко мне. Я просто ввожу русские буквы с клавы.
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 19:58 12
Цитата Сообщение от iRomul Посмотреть сообщение
Какая кодировка у исходного текста?
1251.
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Даже начиная с того- в каких случаях необходио все-таки писат за приделами main ?
Глобальные переменные, реализации функций.
1
Даниил
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
04.08.2013, 20:56 13
На всякий случай...
Глобальные переменные
Функции
Простите за так называемый "сарказм"
1
iRomul
159 / 100 / 14
Регистрация: 17.10.2012
Сообщений: 483
Завершенные тесты: 1
04.08.2013, 22:23 14
Я всё равно не пойму. Во-первых получается, что если бы у нас исходники хранились бы в OEM CP866 (вроде так), то и кракозябр бы не было? И во-вторых - что делает setlocale(LC_ALL, "russian");? Почему от этой функции 1251 работает в 866?
0
Dimka-novitsek
14 / 14 / 2
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 22:25  [ТС] 15
Спасибо!! Понятно!
0
alsav22
5445 / 4840 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 23:10 16
Цитата Сообщение от iRomul Посмотреть сообщение
что делает setlocale(LC_ALL, "russian");
Устанавливает русскую локаль. Вывод будет по русски, ввод - нет. Это в студии. В Code Blocks, например, setlocale(LC_ALL, "russian") не срабатывает для русского вывода.
0
04.08.2013, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 23:10

Как это работает?
Доброго времени суток. Граждане программисты, подскажите пожалуйста как...

Как это работает?
#include &lt;iostream&gt; int *fun() { int a = 5; return &amp;a; } int main() {...

объясните как это работает
#include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; long...


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

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

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