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

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

10.11.2016, 02:13. Просмотров 1219. Ответов 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
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
10.11.2016, 12:39 4
Значит, неправильно делаешь. Программу показывай.
0
Martein
686 / 95 / 17
Регистрация: 22.06.2014
Сообщений: 204
10.11.2016, 12:42 5
Сейчас в конце окажется, что он сидит под Windows XP, да?
0
Maxim Prishchepa
Эксперт С++
1925 / 1037 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
10.11.2016, 12:42 6
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

Русские шрифты в консоли
0
GbaLog-
Любитель чаепитий
3167 / 1473 / 465
Регистрация: 24.08.2014
Сообщений: 5,210
Записей в блоге: 1
Завершенные тесты: 2
10.11.2016, 12:47 7
Цитата Сообщение от Martein Посмотреть сообщение
сидит под Windows XP
А это плохо? Или там русские шрифты поддерживаются хуже, чем на той же 7-ке?
0
Martein
686 / 95 / 17
Регистрация: 22.06.2014
Сообщений: 204
10.11.2016, 12:58 8
GbaLog-, сколько я не пытался, но у меня не вышло переключить вывод кириллицы функциями SetConsoleCP(1251); и setConsoleOutputCP(1251); Поэтому я просто изначально сохранял файлы исходных кодов в кодировке windows-866. Вот тогда винда видела все кириллицу.
0
GbaLog-
Любитель чаепитий
3167 / 1473 / 465
Регистрация: 24.08.2014
Сообщений: 5,210
Записей в блоге: 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
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
10.11.2016, 13:46 10
Martein, шрифт менял? Без этого не работает.
0
MrGluck
Модератор
Эксперт CЭксперт С++
8105 / 4957 / 1436
Регистрация: 29.11.2010
Сообщений: 13,451
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
Сообщений: 95
11.11.2016, 18:21 14
В VS обычно пишу
C++
1
2
system("chcp 1251");
system("cls");
0
Ferrari F1
793 / 522 / 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Эксперт С++
4874 / 2060 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 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Эксперт С++
4874 / 2060 / 325
Регистрация: 20.02.2013
Сообщений: 5,558
Записей в блоге: 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