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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Alexeas
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 12
#1

_getch() в цикле выводит бред вместо русских букв - C++

26.07.2011, 23:16. Просмотров 1180. Ответов 1
Метки нет (Все метки)

Извращался тут с getch(), возникла небольшая, но странная (для меня) проблема.
В программе такого рода
C++
1
2
3
char x;
x=_getch();
cout<<x;
нормально проходят как английские, так и русские символы (ну и остальные клавиши, естественно).

Решил модифицировать, накодировал вот такую фигню:
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
int bykva(char n) //функция сравнивает полученный код клавиши с кодом букв, если буква, то выводит 1, иначе - 0
{
    for(int i=69;i<=122;)
    {
    if(n!=i)
    ++i;
    else
    return 1;
    }
    for(int i=128;i<=239;)
    {
    if(n!=i)
    ++i;
    else
    return 1;
    }
return 0; 
}
 
void main()
{
setlocale (LC_CTYPE,"Russian");
vector <char> word;
char x='s';
while(bykva(x)==1); //набирать слово до тех пор, пока не введен символ, отличный от буквы
{
x=_getch();
word.push_back(x);
cout<<x;
}
cout<<endl<<"Был введён символ!";
_getch();
}
Такая программа выводит на экран не русские буквы, а другие символы. Т.е. набираю русское слово - вылазиют всякие K, D, @ и прочие.
Использование многобайтовой кодировки, wchar_t и getwch() ни к чему не привело.
Ломаю голову, гугл-папирус ничего не нашёл.

PS. Я полный нуб, и IDE моя VS2008.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 23:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос _getch() в цикле выводит бред вместо русских букв (C++):

Иероглифы вместо русских букв - C++
Как сделать в С что бы вместо иероглифов были русские буквы

Вывод непонятных символов вместо русских букв - C++
Здравствуйте, возникла такая проблема, что при выводе строки в методе Show() тот текст, который вводился с клавиатуры на русском языке,...

Русифицировать консоль (кракозябры вместо русских букв) - C++
Я начинающий в С++. Вопрос такой: почему вместо того что вводишь с клавиатуры, выводится совсем не то? Вот код: #include...

Иероглифы вместо русских букв и Красная строка - C++
Здравствуйте! Я в этом деле новичок, поэтому прошу помощи: 1) Почему у меня вместо русских букв ставятся иероглифы? Когда печатаю...

Вывод в документ: китайские иероглифа вместо русских или английских букв - C++
В коде какато фигня. Он написан и по идее работает, но вот с языком вывода проблема. Когда записываешь что-то в документ он записывает...

Некорректная работа ф-ции getch() в цикле - C++
while (iKey != 27) { iKey = getch(); cout &lt;&lt; &quot;qwer&quot;; } Не могу понять почему после нажатия любой клавиши(понятно кроме...

1
jonson
233 / 206 / 61
Регистрация: 18.03.2010
Сообщений: 750
27.07.2011, 01:26 #2
На вот, должно нормально выводить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <vector>
 
using namespace std;
using namespace System;
void main()
{
    vector <char> word;
    char x=' ';
    while( ! isdigit(x) ) 
    {
        x = _getch();
        word.push_back(x);
        cout<<x;
    }
    Console::WriteLine(L"\nБыл введён символ!");
    getch();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2011, 01:26
Привет! Вот еще темы с ответами:

Почему выводит бред - C++
Имеется следующий код #include &lt;iostream&gt; #include &lt;locale&gt; using namespace std; const char* rename() {

Вывод иероглифов вместо русских символов - C++
ситуация такая вывожу строки на русском с помощью printf() в коде программы, перед этим пишу setlocale(LC_ALL, &quot;&quot;) все нормально, но когда...

Созданная программа вместо русских бук выдает иероглифы - C++
Созданная программа вместо русских бук выдает иероглифы. Изменение шрифта при просмотре помогает только временно. Как изменить отображение...

Знаки вопроса вместо русских символов в меню ImGUI - C++
У меня есть менюшка написана на ImGUi Английский язык воспринимает нормально но вместо русского знаки вопроса как исправить ? Уже второй...


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

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

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