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

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

Войти
Регистрация
Восстановить пароль
 
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
#1

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

04.08.2013, 17:46. Просмотров 851. Ответов 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 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2013, 17:46     Русификация.Работает-супер! Обьяснитте, как это работает?
Посмотрите здесь:

C++ объясните грамотно как это работает
C++ Как это работает
Как это работает? C++
C++ объясните как это работает
C++ Как это работает?
Как это работает? C++
COORD position = {0,0}; - как это работает? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
04.08.2013, 18:11     Русификация.Работает-супер! Обьяснитте, как это работает? #2
Как я помню функция CharToOem делает из Юникода русские буквы, но не уверен, так как мне никто не объяснял как это работает

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

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

Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Как он действует?
он никак не действует, он сущность
Литература C++
Croessmah
Модератор
Эксперт CЭксперт С++
12886 / 7272 / 810
Регистрация: 27.09.2012
Сообщений: 17,971
Записей в блоге: 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
coloc
погромист
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.08.2013, 18:55     Русификация.Работает-супер! Обьяснитте, как это работает? #9
Dimka-novitsek, никто пересказывать учебник не собирается. В любой книге можно найти, что такое указатель
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
04.08.2013, 19:00     Русификация.Работает-супер! Обьяснитте, как это работает? #10
Только мне не понятно, из чего получается эта OEM строка. Какая кодировка у исходного текста?
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 19:10  [ТС]     Русификация.Работает-супер! Обьяснитте, как это работает? #11
Вот не знаю, если вопрос ко мне. Я просто ввожу русские буквы с клавы.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 19:58     Русификация.Работает-супер! Обьяснитте, как это работает? #12
Цитата Сообщение от iRomul Посмотреть сообщение
Какая кодировка у исходного текста?
1251.
Цитата Сообщение от Dimka-novitsek Посмотреть сообщение
Даже начиная с того- в каких случаях необходио все-таки писат за приделами main ?
Глобальные переменные, реализации функций.
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
04.08.2013, 20:56     Русификация.Работает-супер! Обьяснитте, как это работает? #13
На всякий случай...
Глобальные переменные
Функции
Простите за так называемый "сарказм"
iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
04.08.2013, 22:23     Русификация.Работает-супер! Обьяснитте, как это работает? #14
Я всё равно не пойму. Во-первых получается, что если бы у нас исходники хранились бы в OEM CP866 (вроде так), то и кракозябр бы не было? И во-вторых - что делает setlocale(LC_ALL, "russian");? Почему от этой функции 1251 работает в 866?
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
04.08.2013, 22:25  [ТС]     Русификация.Работает-супер! Обьяснитте, как это работает? #15
Спасибо!! Понятно!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 23:10     Русификация.Работает-супер! Обьяснитте, как это работает?
Еще ссылки по теме:

C++ Методы доступа - как это работает?
как все это в подробностях работает? C++
C++ Как это работает?
C++ Как это работает?
Как это работает? Я хочу спросить как работает C++ и где можно про него почитать C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 23:10     Русификация.Работает-супер! Обьяснитте, как это работает? #16
Цитата Сообщение от iRomul Посмотреть сообщение
что делает setlocale(LC_ALL, "russian");
Устанавливает русскую локаль. Вывод будет по русски, ввод - нет. Это в студии. В Code Blocks, например, setlocale(LC_ALL, "russian") не срабатывает для русского вывода.
Yandex
Объявления
04.08.2013, 23:10     Русификация.Работает-супер! Обьяснитте, как это работает?
Ответ Создать тему
Опции темы

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