Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
slava25t
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 23
#1

Некорректно отображаются русские символы при вводе в консоль

10.11.2016, 02:13. Просмотров 1079. Ответов 18
Метки нет (Все метки)

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
#include "stdafx.h" 
#include <conio.h> 
#include <iostream> 
 
using namespace std;
 
int main()
{
    setlocale(0, "Russian");
    const char* glas =  "ауеыоэяиюУЕЫАЭЯИЮ";
    char predl[256];
    int k = 0; 
    cout << "Введите" << endl << ">>>";
    cin.getline(predl, 256);
    
    cout << endl << "Вы ввели: " << predl << endl;
 
 
    for (int i = 0, j; predl[i]; i++)
    {
        for (j = 0; predl[i] != glas[j]; j++);
        if (j < 6)
            k++;
    }
    cout << endl << "В данном предложении " << k << " гласных букв.";
    _getch();
    return 0;
}

ввожу предложение на русском, и в строке вы ввели выходят непонятные символы, а если на английском ввожу то все норм, но мне нужно именно на русском и русские гласные. помогите((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2016, 02:13
Ответы с готовыми решениями:

Некорректно отображаются русские надписи на кнопках
В VC++6 некорректно отображаются русские надписи на кнопках. В списках -...

При выводе строки string в консоль, символы написанные кириллицей отображаются неправильно
Программа не работает как надо с кириллицей в строке типа string. Суть...

Некорректно отображаются символы в консоли
Как настроить вывод символов, чтобы консоль не переносила часть слова или числа?

Вывести русские символы в консоль
написал программу в Visual Studio 2015. При выводе std::cout&lt;&lt;&quot;привет&quot;; на...

При считывании файла знаки + и - некорректно отображаются
Имеется код #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt;...

18
abrdabr
Заблокирован
10.11.2016, 03:04 #2
1) запусти консоль, клик на иконку, свойства, шрифты, lucida consolas
2) вместо setlocale исспользовать
#include <windows.h>
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
-или- сменить среду разработки
0
slava25t
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 23
10.11.2016, 12:16  [ТС] #3
не получается. ни так ни сяк
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
10.11.2016, 12:39 #4
Значит, неправильно делаешь. Программу показывай.
0
Martein
678 / 89 / 15
Регистрация: 22.06.2014
Сообщений: 184
10.11.2016, 12:42 #5
Сейчас в конце окажется, что он сидит под Windows XP, да?
0
Maxim Prishchepa
Эксперт С++
1924 / 1036 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
10.11.2016, 12:42 #6
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Русские шрифты в консоли
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
10.11.2016, 12:47 #7
Цитата Сообщение от Martein Посмотреть сообщение
сидит под Windows XP
А это плохо? Или там русские шрифты поддерживаются хуже, чем на той же 7-ке?
0
Martein
678 / 89 / 15
Регистрация: 22.06.2014
Сообщений: 184
10.11.2016, 12:58 #8
GbaLog-, сколько я не пытался, но у меня не вышло переключить вывод кириллицы функциями SetConsoleCP(1251); и setConsoleOutputCP(1251); Поэтому я просто изначально сохранял файлы исходных кодов в кодировке windows-866. Вот тогда винда видела все кириллицу.
0
GbaLog-
Любитель чаепитий
3164 / 1470 / 465
Регистрация: 24.08.2014
Сообщений: 5,200
Записей в блоге: 1
Завершенные тесты: 2
10.11.2016, 13:03 #9
Цитата Сообщение от Martein Посмотреть сообщение
сколько я не пытался
Странно.
WinXP SP3, кодировка ANSI.
C++
1
2
3
4
5
6
7
8
9
10
11
12
/////////////////////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    setlocale( LC_ALL, "Rus" );
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    
    std::cout << "Привет, мир!";
}
Вывод:
Код
Привет, мир!
0
nmcf
6271 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
10.11.2016, 13:46 #10
Martein, шрифт менял? Без этого не работает.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8078 / 4931 / 1431
Регистрация: 29.11.2010
Сообщений: 13,366
10.11.2016, 14:05 #11
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
В свойствах консоли включите Lucida Console.
0
abrdabr
Заблокирован
10.11.2016, 15:36 #12
setlocale( LC_ALL, "Rus" ); не спасёт так как будет нормальным только ввод и вывод, но при получении переменной она будет в отличной кодировке чем внутренняя кодировка программы.
0
slava25t
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 23
11.11.2016, 17:43  [ТС] #13
винда 8.1
0
TheTangro
1 / 1 / 3
Регистрация: 24.09.2015
Сообщений: 93
11.11.2016, 18:21 #14
В VS обычно пишу
C++
1
2
system("chcp 1251");
system("cls");
0
Ferrari F1
791 / 521 / 156
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
11.11.2016, 19:37 #15
slava25t, шрифт консоли попробуй сменить
Некорректно отображаются русские символы при вводе в консоль
0
slava25t
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 23
11.11.2016, 20:24  [ТС] #16
и так и сяк пробовал
0
sourcerer
Модератор
Эксперт CЭксперт С++
4834 / 2025 / 316
Регистрация: 20.02.2013
Сообщений: 5,452
Записей в блоге: 24
Завершенные тесты: 1
11.11.2016, 21:36 #17
Цитата Сообщение от slava25t Посмотреть сообщение
винда 8.1
Цитата Сообщение от slava25t Посмотреть сообщение
и так и сяк пробовал
slava25t, видать, плохо пробовал. У меня на 8.1 оба варианта работают:
0
Миниатюры
Некорректно отображаются русские символы при вводе в консоль   Некорректно отображаются русские символы при вводе в консоль  
slava25t
0 / 0 / 1
Регистрация: 08.11.2016
Сообщений: 23
11.11.2016, 23:27  [ТС] #18
вот где написано ВЫ ВВЕЛИ выходит не то что нужно
0
Миниатюры
Некорректно отображаются русские символы при вводе в консоль  
sourcerer
Модератор
Эксперт CЭксперт С++
4834 / 2025 / 316
Регистрация: 20.02.2013
Сообщений: 5,452
Записей в блоге: 24
Завершенные тесты: 1
11.11.2016, 23:43 #19
slava25t, очень мелкий скрин. Ничего разобрать не могу.
0
11.11.2016, 23:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2016, 23:43

Кирилица отображается нормально при выводе из программы, но иероглифы при вводе в консоль
Что надо подключить что бы в консоли писать русскими буквами? cin &gt;&gt; kol;...

Глюк при вводе через консоль
Как можно обеспечить правильный ввод? При вводе цифр все нормально, а вот...

Visual studio 2010 professional. не отображаются подсказки при вводе кода
доброго времени суток. подобная проблема уже поднималась на форуме, но мне не...


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

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

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