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

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

Войти
Регистрация
Восстановить пароль
 
XenoFlize
1 / 1 / 0
Регистрация: 09.11.2011
Сообщений: 15
#1

Программа для определения кода клавиши выдает неверный код кнопок - C++

25.01.2013, 15:16. Просмотров 877. Ответов 4
Метки нет (Все метки)

Доброго времени суток. У меня есть вопросик. Вот моя программа:


// Программа для определения кода клавиши

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
#include <conio.h>
#include <iostream>
#include <clocale>
 
using namespace std;
 
 
int main()
{
   setlocale(LC_CTYPE,"Russian");
char act;
int ch,a;
do
{ act = _getch();
ch = static_cast<int>(act);
if (ch == 27)
{
exit(0);
}
else
{ cout << ch << "\n";
_getch();
 
}} while ( a = 2 );
 
 
}

Всё работает, но есть один нюанс. Когда я нажимаю одну из клавиш – стрелок, программа выдает код «-32». Затем, если нажать пробел, выводится «32», а при последующем нажатии клавиш со стрелками начинают выдаваться правильные коды стрелок (72, 75, 80, 77). Если еще раз нажать пробел, снова начинаются глюки. Если не трудно, объясните новичку, как и почему оно всё происходит, и как это исправить. ;-)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2013, 15:16     Программа для определения кода клавиши выдает неверный код кнопок
Посмотрите здесь:

функция выдает код нажатой клавиши - C++
привет всем) подскажите пожалуйста есть ли такой оператор, который выдаст код нажатой клавиши,без нажатия клавиши ввода,т.е. нажали...

Выдает ошибку "Неверный тип для индекса массива" - C++
Выдает вот такую ошибку: invalid types '&lt;unresolved overloaded function type&gt;' for array subscript Немогу понять в чем дело. Место...

опрос кода клавиши для остановки бесконечного цикла - C++
Доброй ночи. Курсовая работа на тему создания справочника по резисторам. Пытаюсь писать по кускам. фрагмент программы: ...

Программа для определения дня недели для произвольной даты - C++
Доброго времени суток! Суть программы состоит в том, что нужно определить день недели для даты dd/mm/gg, если известен день недели 1 января...

Почему программа выдает ошибку при первом запуске, а дальше работает нормально? Код C - C++
Подскажите почему программа выдает ошибку при первом запуске, а дальше работает нормально? #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Функция перемножения матриц выдает неверный результат - C++
int **mas_1; int **mas_2; int **mas_3;//глобальные void multiply(int row1, int col1, int row2, int col2) { if (row1 == col2) ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
16.07.2014, 19:48     Программа для определения кода клавиши выдает неверный код кнопок #2
Попробуй так))
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
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    char act;
    int ch, a;
    do
    {
        act = _getch();
        ch = (int)(act);
        if (ch == 27)
        {
            exit(0);
        }
        else
        {
            cout << ch << "\n";
            _getch();
        }
    } while (a = 2);
}
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
16.07.2014, 20:02     Программа для определения кода клавиши выдает неверный код кнопок #3
Цитата Сообщение от XenoFlize Посмотреть сообщение
while ( a = 2 );
что сия аллегория означает?
Цитата Сообщение от Mycola Посмотреть сообщение
C++
1
2
3
4
5
6
char act;
    int ch, a;
    do
    {
        act = _getch();
        ch = (int)(act);
зачем такие танцы если _getch(); и так возвращает int
http://msdn.microsoft.com/ru-ru/library/078sfkak.aspx

Добавлено через 2 минуты
Цитата Сообщение от XenoFlize Посмотреть сообщение
клавиш со стрелками начинают выдаваться правильные коды стрелок (72, 75, 80, 77).
все эти коды это буквы
служебные клавиши выдают двухбайтовый код
Mycola
22 / 12 / 13
Регистрация: 23.03.2013
Сообщений: 157
16.07.2014, 20:17     Программа для определения кода клавиши выдает неверный код кнопок #4
нет первая программа после нажатия пробела что то косячела код я не пересматривал просто поменял что бы не косячело, а там а=2 это просто что бы сделать бесконечный цикл так как она не инициализирована. я думал вы догадаетесь, можно было и лучше но что спрашивалось?..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 20:32     Программа для определения кода клавиши выдает неверный код кнопок
Еще ссылки по теме:

Программа для определения угла между векторами - C++
Я нашел такую программу внизу, немного исправил ее, но не знаю, что watch означает и зачем он вообще и все ли тут правильно. Мне...

Программа для определения минорных аккордов от мажорных - C++
В общем решил для облегчения игры на гитаре написать программу для определения минорных аккордов от мажорных. Вдаваться в подробности не...

Программа для определения даты следующего дня - C++
помогите написать программу в для определения даты следующего дня

Программа для определения попадания точки с координатами (x, y) в мишень - C++
Здравствуйте, помогите пожалуйста в с++ создать алгоритм для определения попадания точки с координатами (x, y) в мишень. вот рисунок:

Программа для определения всех натуральных чисел, которые заканчиваются на 2 - C++
Получить распечатку всех чисел, оканчивающихся на цифру 2, из промежутка от 1 до N.

Массив. Программа для определения максимального подъема 100-километровой автотрассы. - C++
Здравствуйте! Вот написал программу, но не устраивает меня тем, что нужно выдавать самый длинный подъем, так и есть, но вот как написать от...


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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
16.07.2014, 20:32     Программа для определения кода клавиши выдает неверный код кнопок #5
Mycola,
а я у автора и спрашивал, что за тайный смысл сделать такой бесконечный цикл
Цитата Сообщение от Mycola Посмотреть сообщение
нет первая программа после нажатия пробела что то косячела код
косила она из за того что из int делали char а потом наоборот
служебные символы часто бывают двубайтовые и в потоке остается "хвост"
Yandex
Объявления
16.07.2014, 20:32     Программа для определения кода клавиши выдает неверный код кнопок
Ответ Создать тему
Опции темы

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