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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 148, средняя оценка - 4.66
Artishok
ЧакЭ одобряЭ
 Аватар для Artishok
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
24.09.2010, 17:41     Считывание нажатия клавиш с клавиатуры #1
как сделать так чтобы программа завершалась при нажатие какой-то определенной клавиши?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2010, 17:41     Считывание нажатия клавиш с клавиатуры
Посмотрите здесь:

Отслеживание нажатия клавиш C++
C++ Отслеживание нажатия клавиш.
C++ Нажатия клавиш
Нереагирование на нажатия клавиш C++
Как создать сообщение нажатия клавиш клавиатуры? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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;
Artishok
ЧакЭ одобряЭ
 Аватар для Artishok
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
24.09.2010, 17:51  [ТС]     Считывание нажатия клавиш с клавиатуры #3
например стрелки вверх-вниз
просто надо сделать консольное меню похожее на кнопочное
TheMachinist
 Аватар для TheMachinist
242 / 174 / 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 - кнопка вныз
или наоборот
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.09.2010, 18:20     Считывание нажатия клавиш с клавиатуры #5
NikolaWhite, а почему именно 27 ето - Esc ?
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.09.2010, 18:22     Считывание нажатия клавиш с клавиатуры #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Asics^, изучайте таблицы http://ascii-table.com/ascii.php
именно почему так, это наверное надо спрашивать у создателей ASCII
Gerrard
 Аватар для Gerrard
12 / 12 / 0
Регистрация: 15.01.2010
Сообщений: 144
24.09.2010, 18:23     Считывание нажатия клавиш с клавиатуры #7
Цитата Сообщение от Asics^ Посмотреть сообщение
NikolaWhite, а почему именно 27 ето - Esc ?
потому что енто ее код. погугли там есть коды до каждой кнопки на клаве
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 18:25     Считывание нажатия клавиш с клавиатуры #8
а почему именно 27 ето - Esc ?
Потому что это код клавиши ANSСII
У каждой клавиши есть свой код ввиде числа
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.09.2010, 18:35     Считывание нажатия клавиш с клавиатуры #9
Списибо,буду учить.
IMD
2 / 2 / 0
Регистрация: 17.06.2010
Сообщений: 38
24.09.2010, 19:03     Считывание нажатия клавиш с клавиатуры #10
Люди, а как вы делаете считывание клавишь вверх, вниз, влево. вправо, ведь getch() у всех этих клавишь выдает код 224. Лично я сделал так, что если клавиши 224 то снова поисходит getch(). Но может быть можно по другому?
Кстати не обязательно изучать таблицы где-то в интернетах, можно просто посмотреть коды с помошью дебага или сделать вывод кода клавишь на экран.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 19:52     Считывание нажатия клавиш с клавиатуры #11
как вы делаете считывание клавишь вверх, вниз, влево. вправо, ведь getch() у всех этих клавишь выдает код 224.
Непонятно откуда у тебя берется 224, должно быть 77, 75, 80, 72

Кстати не обязательно изучать таблицы где-то в интернетах, можно просто посмотреть коды с помошью дебага или сделать вывод кода клавишь на экран.
а поподробнее можно? (Если это касается VS Express)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
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.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
24.09.2010, 23:33     Считывание нажатия клавиш с клавиатуры #14
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Кстати не обязательно изучать таблицы где-то в интернетах
имхо, куда удобнее иметь под рукой таблицу, чем постоянно писать для этого отдельную прогу.
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
24.09.2010, 23:54     Считывание нажатия клавиш с клавиатуры #15
Сообщение от NikolaWhite
Кстати не обязательно изучать таблицы где-то в интернетах
Это не от NikolaWhite сообщение. Лично я уже добавил таблицу в избранное
fasked
25.09.2010, 01:02
  #16

Не по теме:

Цитата Сообщение от NikolaWhite Посмотреть сообщение
Это не от NikolaWhite сообщение. Лично я уже добавил таблицу в избранное
да просто из твоего сообщения копировать было удобнее

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2016, 11:04     Считывание нажатия клавиш с клавиатуры
Еще ссылки по теме:

C++ Отлов нажатия клавиш
Имитация нажатия клавиш C++
C++ Обработка нажатия клавиш

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

Или воспользуйтесь поиском по форуму:
vitaliy2034
1 / 1 / 1
Регистрация: 14.01.2016
Сообщений: 25
Завершенные тесты: 1
11.07.2016, 11:04     Считывание нажатия клавиш с клавиатуры #17
C++
1
2
3
4
5
6
while(true){
if(_getch()== 27){
cout<<"Dosvidos";
exit(0);
}
}
Yandex
Объявления
11.07.2016, 11:04     Считывание нажатия клавиш с клавиатуры
Ответ Создать тему
Опции темы

Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru