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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 148, средняя оценка - 4.66
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

Считывание нажатия клавиш с клавиатуры - C++

24.09.2010, 17:41. Просмотров 20386. Ответов 16
Метки нет (Все метки)

как сделать так чтобы программа завершалась при нажатие какой-то определенной клавиши?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2010, 17:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание нажатия клавиш с клавиатуры (C++):

Как создать сообщение нажатия клавиш клавиатуры? - C++
Мне надо что бы при каждом нажатии на клавишу клавиатуры у меня выполнялись определенные действия... Я думаю что надо сделать примерно...

Заменить считывание с клавиатуры на считывание из файла - C++
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Нажатия клавиш - C++
В mfc нужно чтобы при нажатии клавиш, происходило действие. С помощью WM_KEYDOWN, пытался сделать, чтобы при нажатии клавиш программа...

Отлов нажатия клавиш - C++
Доброго времени суток! Стоит задача при нажатии оперделенной клавиши выполнить действие. Код: #include <windows.h> #include...

Обработка нажатия клавиш - C++
Здравствуйте! Необходимо решить следующую задачу: Есть консольное приложение, которое разрабатывается с использованием C++, с...

Отслеживание нажатия клавиш. - C++
#include <iostream> #include <string> #define FOR(i,a,b) for (int i(a), _n(b); i < _n; ++i) using namespace std; int...

16
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
24.09.2010, 17:44 #2
Смотря как вам нужно. Но например так.
C++
1
2
3
4
5
char ch;
std::cout<<"Enter q for exit\n";
std::cin>>ch;
if(ch=='q')
  return 0;
0
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
24.09.2010, 17:51  [ТС] #3
например стрелки вверх-вниз
просто надо сделать консольное меню похожее на кнопочное
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 17:57 #4
Вот так будет работать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
using namespace std;
 
 
int main()
{
    char ch;
    int code;
    while(1)
    {
        ch = getch();
        code = static_cast<int>(ch);
            if(ch == 27) // если клавиша esc
                exit(0);
    }
 
}
Добавлено через 4 минуты
80 - кнопка навэрх
72 - кнопка вныз
или наоборот
4
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.09.2010, 18:20 #5
NikolaWhite, а почему именно 27 ето - Esc ?
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.09.2010, 18:22 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Asics^, изучайте таблицы http://ascii-table.com/ascii.php
именно почему так, это наверное надо спрашивать у создателей ASCII
4
Gerrard
12 / 12 / 0
Регистрация: 15.01.2010
Сообщений: 144
24.09.2010, 18:23 #7
Цитата Сообщение от Asics^ Посмотреть сообщение
NikolaWhite, а почему именно 27 ето - Esc ?
потому что енто ее код. погугли там есть коды до каждой кнопки на клаве
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 18:25 #8
а почему именно 27 ето - Esc ?
Потому что это код клавиши ANSСII
У каждой клавиши есть свой код ввиде числа
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.09.2010, 18:35 #9
Списибо,буду учить.
0
IMD
2 / 2 / 0
Регистрация: 17.06.2010
Сообщений: 38
24.09.2010, 19:03 #10
Люди, а как вы делаете считывание клавишь вверх, вниз, влево. вправо, ведь getch() у всех этих клавишь выдает код 224. Лично я сделал так, что если клавиши 224 то снова поисходит getch(). Но может быть можно по другому?
Кстати не обязательно изучать таблицы где-то в интернетах, можно просто посмотреть коды с помошью дебага или сделать вывод кода клавишь на экран.
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 19:52 #11
как вы делаете считывание клавишь вверх, вниз, влево. вправо, ведь getch() у всех этих клавишь выдает код 224.
Непонятно откуда у тебя берется 224, должно быть 77, 75, 80, 72

Кстати не обязательно изучать таблицы где-то в интернетах, можно просто посмотреть коды с помошью дебага или сделать вывод кода клавишь на экран.
а поподробнее можно? (Если это касается VS Express)
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.09.2010, 20:27 #12
NikolaWhite, ну примерно вот так:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <conio.h>
int main()
{
char k;
std::cin >> k;
std::cout << int(k) << std::endl;
getch();
return 0;
}
1
IMD
2 / 2 / 0
Регистрация: 17.06.2010
Сообщений: 38
24.09.2010, 20:29 #13
Ну сначала
C
1
key = getch();
, а дальше либо смотрим переменную key дебагом либо:
C
1
printf("%f", key)
как-то так. Дак вот если нажать вниз или вверх и т.д. то выдаст 224.
1
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
24.09.2010, 23:33 #14
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Кстати не обязательно изучать таблицы где-то в интернетах
имхо, куда удобнее иметь под рукой таблицу, чем постоянно писать для этого отдельную прогу.
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 23:54 #15
Сообщение от NikolaWhite
Кстати не обязательно изучать таблицы где-то в интернетах
Это не от NikolaWhite сообщение. Лично я уже добавил таблицу в избранное
0
24.09.2010, 23:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 23:54
Привет! Вот еще темы с ответами:

Обработчик нажатия клавиш - C++
Хочу написать обработчик нажатия клавиш. А именно чтобы после запуска приложения консольное окно сворачивалось и программа считывала все...

Имитация нажатия клавиш - C++
как только и не пытался всё выводит одну и туже ошибку, помогите начинающему c++ юзеру #include &lt;iostream&gt; #include &lt;Windows.h&gt; ...

Отслеживание нажатия клавиш - C++
Помогите решить Напишите программу, печатающие коды, генерируемые при нажатии любой клавиши или комбинации клавиш. Используйте функцию...

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


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

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

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