Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
4 / 4 / 0
Регистрация: 10.01.2014
Сообщений: 94
1

Русский Язык в программе не отображается

27.08.2014, 16:12. Показов 6629. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть программа:
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
#include <windows.h>
#include <iostream>
#include <queue>
#include <conio.h>
#include <cstdio>
using namespace std;
 
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
printf("Введите одно число.\nПри неккоректном вводе, программа может работать неверно\n");
     printf("Число должно быть больше 0, но меньше 10!\n");
    const int N = 10;
    int mother[ N ] = { 0, 0, 9, 4, 5, 0, 5, 1, 1, 0 };
    int father[ N ] = { 0, 5, 5, 3, 5, 5, 5, 5, 5, 1 };
    int p, x;
    queue< int > q;
    cin >> p;
    if(p>10) printf("Ошибка ввода");
    q.push( p );
    q.push( -1 );
 
    while ( true )
    {
        x = q.front(); q.pop();
 
        if ( x < 0 )
        {
            if ( q.empty() ) break;
            cout << " Родственники которые старше -> ";
            q.push( -1 );
            continue;
        }
        if ( mother[ x ] != x )
        {
            cout << mother[ x ] << ' ';
            q.push( mother[ x ] );
        }
        if ( father[ x ] != x )
        {
            cout << father[ x ] << ' ';
            q.push( father[ x ] );
        }
    }
    printf("\nЕсли после -> нечего нету, значит нету мамы и папы.");
    printf("\nЕсли после -> есть только первая цифра, значит есть мама.");
    printf("\nЕсли после -> есть вторая цифра, значит есть папа.");
    printf("\n -> Указывает на родственников, которые выше.");
     getch();
    return 0;
}
Программа работает верно, но не отображается КОРРЕКТНО русский язык. Перепробовал все методы, которые нашел на форумах, но всеравно не работает (шрифт стоит Lucida Console). Всегда отображает абракадабру какуюто. Подскажите, в чем может быть еще проблема.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2014, 16:12
Ответы с готовыми решениями:

Не отображается русский язык в программе
Использую связку MS access+odbc+delphi. Возникла такая проблема: русский язык в программе не...

Qt. Не отображается русский язык в работающей программе
Скачал недоделанную прогу и не могу понять, почему она отображает все в иероглифах? Кодировку...

Не отображается русский язык
Доброго времени суток. С недавних пор, вместо слов в некоторых программах, а также в элементах...

Не отображается русский язык
Помогите исправить код невыводит русский язык в результатевот код: выдает эроглифы. ...

19
737 / 527 / 130
Регистрация: 31.05.2013
Сообщений: 2,975
Записей в блоге: 3
27.08.2014, 16:22 2
Можно глянуть тут
0
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
27.08.2014, 16:44 3
Dinkin, только это консоль

Добавлено через 12 секунд
про консоль тут
0
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
27.08.2014, 16:46 4
я так понял код предназначен для консольного отображения и нет никакой работы с формой и компонентами :3 (какой я умный)

поэтому стоит посмотреть в другом разделе https://www.cyberforum.ru/cpp-beginners/

Не по теме:

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

0
4 / 4 / 0
Регистрация: 10.01.2014
Сообщений: 94
27.08.2014, 17:03  [ТС] 5
Я пересмотрел ссылки, накиданные тут, все тоже самое я смотрел много раз, и не только смотрел, но и пробовал.
Самое главное заключается в том, что:
Я эту программу запускал на выполнение когда-то месяца 2-3 назад, и она работала ПРАВИЛЬНО. Но сейчас выводит какую-то "шнягу".
И я непонимаю, возможно ли это, если работало, а через месяц АБСОЛЮТНО ВСЕ ТОЖЕ САМОЕ НЕ РАБОТАЕТ.
0
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
27.08.2014, 17:20 6
Лучший ответ Сообщение было отмечено RendomID как решение

Решение

Русский Язык в программе не отображается
0
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
27.08.2014, 17:23 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
#include <stdio.h>
#include <locale.h>
#include <windows.h>
#include <iostream>
#include <queue>
#include <conio.h>
#include <cstdio>
using namespace std;
char bufRus[256];
    char *Rus(const char *text)
    {
        CharToOem(text,bufRus);
        return bufRus;
    }
 
int main()
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
printf(Rus("Введите одно число.\nПри неккоректном вводе, программа может работать неверно\n"));
     printf(Rus("Число должно быть больше 0, но меньше 10!\n"));
    const int N = 10;
    int mother[ N ] = { 0, 0, 9, 4, 5, 0, 5, 1, 1, 0 };
    int father[ N ] = { 0, 5, 5, 3, 5, 5, 5, 5, 5, 1 };
    int p, x;
    queue< int > q;
    cin >> p;
    if(p>10) printf(Rus("Ошибка ввода"));
    q.push( p );
    q.push( -1 );
 
    while ( true )
    {
        x = q.front(); q.pop();
 
        if ( x < 0 )
        {
            if ( q.empty() ) break;
            cout << Rus(" Родственники которые старше -> ");
            q.push( -1 );
            continue;
        }
        if ( mother[ x ] != x )
        {
            cout << mother[ x ] << ' ';
            q.push( mother[ x ] );
        }
        if ( father[ x ] != x )
        {
            cout << father[ x ] << ' ';
            q.push( father[ x ] );
        }
    }
    printf(Rus("\nЕсли после -> нечего нету, значит нету мамы и папы."));
    printf(Rus("\nЕсли после -> есть только первая цифра, значит есть мама."));
    printf(Rus("\nЕсли после -> есть вторая цифра, значит есть папа."));
    printf(Rus("\n -> Указывает на родственников, которые выше."));
     getch();
    return 0;
}
0
85 / 85 / 33
Регистрация: 21.09.2013
Сообщений: 339
27.08.2014, 17:23 8
Лучший ответ Сообщение было отмечено RendomID как решение

Решение

Русский Язык в программе не отображается
0
4 / 4 / 0
Регистрация: 10.01.2014
Сообщений: 94
27.08.2014, 18:05  [ТС] 9
Спасибо большое, правда я эту функцию пытался использовать, но почему-то не получилось, а тут все работает)
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
27.08.2014, 19:26 10
CharToOem() пользуйте.

месяца 2-3 назад, и она работала ПРАВИЛЬНО. Но сейчас
а сейчас какая-нить программа чуть-чуть подкорректировала ветку реестра и уже не работает.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.09.2014, 21:29 11
Цитата Сообщение от raxp Посмотреть сообщение
CharToOem() пользуйте.
Не нужны не какие CharToOem()
При
Цитата Сообщение от RendomID Посмотреть сообщение
C++
1
2
SetConsoleOutputCP(1251);
 SetConsoleCP(1251);
и
Цитата Сообщение от RendomID Посмотреть сообщение
(шрифт стоит Lucida Console).
Должно работать.

Скорее всего исходники не в той кодировке сохранены, какая версия билдера?

Добавлено через 20 минут

Не по теме:

Цитата Сообщение от demon_7 Посмотреть сообщение
и не помню чтоб когда либо во времена программирования в консоли использовали русские символы, всегда писали транслитом
"Человек пишущий транслитом ..."

0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
02.09.2014, 22:00 12
При
вот это далеко не всегда и работает как раз.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.09.2014, 22:47 13
В С++Builder6, RadStudioXE3 и МSVC2010 Проверено работает.
Да и какая причина может быть что бы не работало?

Добавлено через 2 минуты
Недавно Qt разделе еще подымалась тема, там еще требовалось setlocate() установить.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
03.09.2014, 08:52 14
Цитата Сообщение от Avazart Посмотреть сообщение
Да и какая причина может быть что бы не работало?
Виндовые какие-нибудь настройки.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
03.09.2014, 09:27 15
...вот именно, "виндовые" настройки, корректно или некорректно, но факт имеет место быть (забейте в поиск по форуму). Метод перекодировки в DOS-кодировку будет получше, все же консоль есть консоль.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.09.2014, 11:57 16
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Виндовые какие-нибудь настройки.
Например?

Цитата Сообщение от raxp Посмотреть сообщение
. Метод перекодировки в DOS-кодировку будет получше, все же консоль есть консоль.
Костыли для кривых рук?
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
03.09.2014, 12:06 17
...костыль - это проводить визуализацию данных в кириллице в DOS-окне под виндами.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.09.2014, 12:31 18
Цитата Сообщение от raxp Посмотреть сообщение
...костыль - это проводить визуализацию данных в кириллице в DOS-окне под виндами.
Не понял о чем вы.
0
0 / 0 / 0
Регистрация: 17.02.2016
Сообщений: 1
17.02.2016, 01:39 19
У меня другая ситуация. Я ещё о выводе не говорю. Я на консольном режыме ни чё на русском не могу писать. Все там вопросики ставит. Что делать???

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <clocale>
 
int main(){
    char buffer[1024];
    setlocale(LC_ALL,"Rus");
    std::cout<<"?????? ->";
    std::cin>>buffer;
    std::cout<<buffer<<std::endl;;
    return 0;
}
Там в вопросиках Привет написано. Я так Виндоус 8.1 про использую
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.02.2016, 02:50 20
gameboybin, Русский Язык в программе не отображается
0
17.02.2016, 02:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2016, 02:50
Помогаю со студенческими работами здесь

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

Некорректно отображается русский язык
Ввожу в mysql строку кириллицей, прописываю select *..... все корректно отображается, но когда...

Русский язык иероглифами отображается
Уважаемые умные люди, помогите пожалуйста! Решил перейти на 64 бита и сразу огреб проблему....

Delphi не отображается русский язык
В консоле отображаются сиволы за место русского языка,что делать? Broland Delphi P.s Я...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru