Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
2 / 2 / 0
Регистрация: 08.05.2013
Сообщений: 14
1

Как определить, нажата ли клавиша Enter

17.07.2013, 02:26. Просмотров 4703. Ответов 3
Метки нет (Все метки)

В общем, хочу сделать чат на WinSock. Как только дошел до отправки/приема сообщений - сразу появилась проблема - как сделать так, чтобы срабатывало условие, если нажата клавиша, но при этом не останавливая программу. На помощь пришла функция _kbhit(), которая по идеи считывает последнюю нажатую клавишу, а далее на основе полученных данных можно провести проверку... Написал условие, узнал код клавиши Enter (13) и пошел проверять... Компилятор ошибок не выдал, однако код внутри выполняется бесконечное количество раз, а программа вовсе останавливается (?), хотя я явно указал, что его следует исполнять только если нажата клавиша Enter.
Скорее всего, конечно же, _kbhit() будет выдавать как последнюю клавишу Enter, пока я не нажму другую...
Так вот, как же сделать условие, исполняемое только если нажата клавиша Enter, но при этом не останавливая ход выполнения программы? Не обязательно использовать вышеописанный способ, можно любой другой ( использую CLI )

Код:
C++
1
2
3
4
5
6
7
8
9
while(1){
     vk = _kbhit();
     if(vk == 13){
 
     //Код, исполняемый, если нажата клавиша Enter
         vk =0 //Обнуляем переменную, чтобы if не срабатывала бесконечное количество раз.
         }//if
 
     }//while
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2013, 02:26
Ответы с готовыми решениями:

Как определить, что на текстовом поле нажата клавиша Enter и выполнить какое либо действие?
Как определить, что на текстовом поле нажата клавиша Enter и выполнить какое либо действие?

Составьте программу которая выводит символы нажатых клавиш до те пор, пока не нажата клавиша ENTER
Составьте программу которая выводит символы нажатых клавиш до те пор, пока не нажата клавиша ENTER....

Как определить, была ли вообще нажата символьная клавиша?
То есть гарантированно отсеять клавиши, у которых нет своих символов. Всякие там бекспейсы и тому...

Как глобально определить, какая клавиша была нажата?
хочу написать что то вроде клав. шпиона... но кроме tab esc up down итд... я ничего отловить не...

3
Грамотный. Безпорно.
16852 / 9748 / 1878
Регистрация: 27.09.2012
Сообщений: 24,155
Записей в блоге: 2
17.07.2013, 06:07 2
GetAsyncKeyState
1
2 / 2 / 0
Регистрация: 08.05.2013
Сообщений: 14
17.07.2013, 21:53  [ТС] 3
Слышал о таком, но как правильно его использовать? На MSDN примера не нашел.
0
Грамотный. Безпорно.
16852 / 9748 / 1878
Регистрация: 27.09.2012
Сообщений: 24,155
Записей в блоге: 2
17.07.2013, 21:56 4
Стрелки клавиатуры в консоли
С Enter аналогично
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2013, 21:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как определить нажата ли клавиша capslock, numlock, ins в vb.net?
Как определить нажата ли клавиша capslock, numlock, ins в vb.net? Надо для текстового редактора,...

Как проверять, нажата ли клавиша Esc, в каждой итерации цикла, и если нажата, то прервать выполнение цикла?
OwenGlendower, это обращение прежде всего к вам. Вызов функции, в которой происходит проверка...

Определить, какая клавиша нажата
Написал процедуру по определению нажатия кнопки, но как определить какая именно кнопка была нажата?

Нужно определить нажата ли клавиша?
Надо определить какая из сист. кнопок была нажата . теF1-f7,shift,enter и т.д. Помогите плеазе!!!!


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

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

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