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

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

Войти
Регистрация
Восстановить пароль
 
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 157
#1

Вызов функции нажатием клавиши - C++

25.06.2014, 05:34. Просмотров 719. Ответов 10
Метки нет (Все метки)

покажите пример вызова функции при нажатии определенной клавиши например escape (консольное приложение )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2014, 05:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызов функции нажатием клавиши (C++):

Вызов функции при нажатии клавиши - C++
Доброго всем дня! Мучает меня вопрос, как сделать так, чтобы функция function3 вызывалась в любой момент выполнения программы при нажатии...

Консоль. Завершение цикла нажатием клавиши - C++
В консольной программе запускается бесконечный цикл. Необходимо организовать завершение цикла при нажатии любой клавиши(или какой-л...

Нужно закончить ввод последовательности чисел нажатием клавиши ENTER - C++
В общем есть цикл for, в нем мы вводим последовательно числа. char a; int i; For (i=0; i<9; i++) { if (cin.getline(a, 9,...

Вывод результата нажатием клавиши "равно" - C++
как отобразить результат нажатием кнопки '=' ? (Пример: 2 + 4 = результат) #include <iostream> using namespace std; int main() { ...

Вызов функции внутри другой функции с передачей локальной переменной по ссылке - C++
Столкнулся с очень с интересной проблемой. Можно ли так делать? #include <iostream> using std::cout; void f(const int &ref){...

Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель) - C++
#include <iostream> using namespace std; template <class T1> class mas { public: T1 n; T1 a; void input() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
25.06.2014, 08:13 #2
C++
1
2
3
4
5
char ch;
std::cin >> ch;
if (ch == '1') {
    CallSomeFunction();
}
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2014, 08:21 #3
Цитата Сообщение от Kukurudza Посмотреть сообщение
char ch;
std::cin >> ch;
if (ch == '1') {
* * CallSomeFunction();
}
И где здесь:
Цитата Сообщение от Hsac Посмотреть сообщение
при нажатии определенной клавиши
?
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
25.06.2014, 08:31 #4
а что не так? нажимай на 1 (определенная клавиша, задай свою, если 1 тебе не нравится) и получай вызов функции.

Добавлено через 5 минут
вот так дополню еще. но сути не меняет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void CallSomeFunction() {
    std::cout << "CallSomeFunction\n";
}
 
int _tmain(int argc, char* argv[]) {
    while (true) {
        if ('1' == _getch()) {
            CallSomeFunction();
        }
    }
    return 0;
};
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2014, 08:39 #5
Цитата Сообщение от Kukurudza Посмотреть сообщение
а что не так?
Спорить не буду, можно и так (по первому коду). Но это не совсем вызов при нажатии клавиши, это вызов при вводе определённого символа, что не одно и тоже.
Цитата Сообщение от Kukurudza Посмотреть сообщение
нажимай на 1 (определенная клавиша, задай свою, если 1 тебе не нравится) и получай вызов функции.
Да? Только на 1? А как же Enter?
С getch() уже ближе к теме.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
25.06.2014, 08:42 #6
alsav22, ты начал прикапываться, хотя да, я с тобой согласен, это вызов при вводе определенного символа. тогда надо подсмотреть таблицу кнопочег, у единички это 49
C++
1
2
3
4
5
6
7
8
9
10
11
12
void CallSomeFunction() {
    std::cout << "CallSomeFunction\n";
}
 
int _tmain(int argc, char* argv[]) {
    while (true) {
        if (49 == _getch()) {
            CallSomeFunction();
        }
    }
    return 0;
};
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2014, 08:46 #7
Цитата Сообщение от Kukurudza Посмотреть сообщение
ты начал прикапываться
Я просто уточняю.
Цитата Сообщение от Kukurudza Посмотреть сообщение
тогда надо подсмотреть таблица кнопочег, у единички это 49
Посмотреть мало, это нужно ещё обработать.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
25.06.2014, 08:49 #8
alsav22,
Цитата Сообщение от alsav22 Посмотреть сообщение
это нужно ещё обработать.
поясни?
Hsac
13 / 13 / 1
Регистрация: 30.06.2013
Сообщений: 157
25.06.2014, 08:53  [ТС] #9
эм я вообще-то хотел узнать как делается через getkeystate или GetAsyncKeyState
я через консоль создаю свою форму и на нем делаю игру так вот кнопки должны вызывать определенные методы (выход в меню пауза итд)
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2014, 09:22 #10
Цитата Сообщение от Kukurudza Посмотреть сообщение
поясни?
Я к тому, что getch() читает коды символов, но не коды клавиш. Замени в своём коде 49 на 75, и проверь работу. Клавиша одна, но коды символов генерирует разные, в зависимости от раскладки, регистра.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
25.06.2014, 12:56 #11
Цитата Сообщение от Hsac Посмотреть сообщение
эм я вообще-то хотел узнать как делается через getkeystate или GetAsyncKeyState
C++
1
if (GetAsyncKeyState('1'))
чем не устраивает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2014, 12:56
Привет! Вот еще темы с ответами:

Вызов функции в параметре другой функции - C++
программа: #include &lt;iostream&gt; using namespace std; struct E { E() {} }; void f(const E&amp; e)

Вызов функции в возврате значения функции - C++
Есть функция: int function1(a) { ...... return function2(function1(b),function1(c)); } Как работает такая хитрая система?

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

Вызов функции - C++
#include &quot;stdafx.h&quot; #include &lt;locale&gt; #include &lt;iostream&gt; using namespace std; class Bankomat { public: Bankomat(){}; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.06.2014, 12:56
Ответ Создать тему
Опции темы

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