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

Кириллица в консоли - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
06.05.2012, 15:39     Кириллица в консоли #1
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
#include "stdafx.h"
#include <iostream.h>
#include  "seria.h"
#include<windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
 
void main()
{
        float **mass=0;
    int const k = 3;
    mass = new float *[k];
    for (i = 0; i < k; i++)
    mass[i] = new float [k];
    cout << Rus("Введите матрицу:\n");
    for (i = 0; i < k; i++)
        for (int j = 0; j < k; j++)
        {
            cout << Rus("Введите элемент матрицы[")<<i+1<<("][")<<j+1<<("]: ");
            cin >> mass[i][j];
        }
 
    seria(mass,3);
    cout << "\n";
 
}

а вот сам срр файл:

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
#include "stdafx.h"
#include <iostream.h>
 
float seria(float ** mas, int const n = 3)
{
    bool flag = false;
    int const k = n - 1;
    float *m = 0;
    m = new float [k];  
 
    for (int i = 0; i < k; i++)
    {
        m[i] = 0;
        for (int j = 0; j < k; j++)
        {
            flag;
            if(mas[i][j] == mas[i][j+1])
            {
                m[i]++;
                flag=true;
            }
        }
    }
 
    float max = m[0];
    int numstr = 0;
 
    for (i = 0; i < n; i++)
    {
        if(max < m[i])
        {
            max = m[i];
            numstr = i;
        }
    }
    
    if (!flag)
    cout << "Последовательностей с одинаковыми элементами нет!\n";
    else
    cout << "Строка с самой длинной последовательностью: " << numstr << endl;
 
    return numstr;
    
}

а теперь сам вопрос, как сделать так, чтобы внутри из функции выводилось на консоль в кириллице, пробовал #include<windows.h>

C++
1
2
3
4
5
6
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
перед функцией вставлять, не помогает, что делать, подскажите пожалуйста)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2012, 15:39     Кириллица в консоли
Посмотрите здесь:

кириллица C++
C++ Кириллица в консоли
C++ Кириллица в UTF-8
Кириллица C++
Условный оператор, кириллица в консоли C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HighPredator
 Аватар для HighPredator
5351 / 1734 / 320
Регистрация: 10.12.2010
Сообщений: 5,120
Записей в блоге: 3
06.05.2012, 15:58     Кириллица в консоли #2
Используйте функцию Rus раз уж объявили:
C++
1
cout<<Rus("вывод на русском")<<endl;
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
06.05.2012, 17:30  [ТС]     Кириллица в консоли #3
C++
1
2
3
4
5
6
7
8
9
10
ввожу
    if (!flag)
    cout << Rus("ÏîñëåäîâГ*òåëüГ*îñòåé Г± îäèГ*Г*êîâûìè ýëåìåГ*ГІГ*ìè Г*ГҐГІ!\n");
    else
    cout << Rus("ÑòðîêГ* Г± Г±Г*ìîé äëèГ*Г*îé ïîñëåäîâГ*òåëüГ*îñòüþ: ") << numstr << endl;
 
    return numstr;
 
выдает 
'Rus' : undeclared identifier
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 17:36     Кириллица в консоли #4
функция до кода объявлена?
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
06.05.2012, 18:33  [ТС]     Кириллица в консоли #5
вот что я сделал в главном файле:
C++
1
2
3
4
5
6
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
и каждый раз перед текстом вставляю:
C++
1
cout << Rus(".....\n");
но не помогает, может нужно как-то указать в срр файле, что функция для кириллицы объявлена?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.05.2012, 21:42     Кириллица в консоли #6
Цитата Сообщение от 123456кам Посмотреть сообщение
вот что я сделал в главном файле:
объявите функцию до функции main
реализацию можете после написать, все работает, вы просто что-то не то делаете. Выкладывайте весь код уже
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 21:55     Кириллица в консоли
Еще ссылки по теме:

Подсчитать количество вхождений буквы (кириллица) в строку (кириллица) C++
C++ Кириллица в консоли
C++ Кириллица в консоли

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

Или воспользуйтесь поиском по форуму:
123456кам
1 / 1 / 0
Регистрация: 11.11.2011
Сообщений: 49
06.05.2012, 21:55  [ТС]     Кириллица в консоли #7
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
я сделал вот так и вроде работает:
 
#include "stdafx.h"
#include <iostream.h>
#include "seria.h"
#include <windows.h>
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
 
void main()
{
    float **mass=0;
    int const k = 3;
    mass = new float *[k];
    for (i = 0; i < k; i++)
    mass[i] = new float [k];
    cout << Rus("Введите матрицу:\n");
    for (i = 0; i < k; i++)
        for (int j = 0; j < k; j++)
        {
            cout << Rus("Введите элемент матрицы[")<<i+1<<("][")<<j+1<<("]: ");
            cin >> mass[i][j];
        }
 
    seria(mass,3);
    cout << "\n";
 
}
 
и плюс .срр файл который я вызываю с помощью .h файла
 
#include "stdafx.h"
#include <iostream.h>
#include <windows.h>
 
char* Rus(const char* text);
 
float seria(float ** mas, int const n = 3)
{
    bool flag = false;
    int const k = n - 1;
    float *m = 0;
    m = new float [k];  
 
    for (int i = 0; i < k; i++)
    {
        m[i] = 0;
        for (int j = 0; j < k; j++)
        {
            flag;
            if(mas[i][j] == mas[i][j+1])
            {
                m[i]++;
                flag=true;
            }
        }
    }
 
    float max = m[0];
    int numstr = 0;
 
    for (i = 0; i < n; i++)
    {
        if(max < m[i])
        {
            max = m[i];
            numstr = i;
        }
    }
    
    if (!flag)
    cout << Rus("Последовательностей с одинаковыми элементами нет!\n");
    else
    cout << Rus("Строка с самой длинной последовательностью: ") << numstr << endl;
 
    return numstr;
    
}
 
вот так все заработало)
Yandex
Объявления
06.05.2012, 21:55     Кириллица в консоли
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru