реклама на сайте
подробности

 
 
> Отследить нажатие клавиши.
Charly
сообщение Sep 24 2007, 13:47
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 13-09-07
Пользователь №: 30 515



Добрый день.
В программе, которую я пишу, необходимо создать переодическую функцию, отслеживающую нажатие пользователем клавиши.
пробовал вызывать getchar(); выскакивает окошко с приглашением ввести текст...
Есть ли возможность проверять нажималась клавиша во время работы программы или нет?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SamHaris
сообщение Sep 24 2007, 14:04
Сообщение #2





Группа: Новичок
Сообщений: 13
Регистрация: 11-08-05
Пользователь №: 7 546



Вообще-то есть функция kbhit() у меломякого.
А в Линуксе концепция оси построена по другому.
Но в принципи можно ее самому написать, ели очень надо.
Например так:
Код
int kbhit () {
    fd_set rd;
    struct timeval tv;

    tv.tv_sec = 0;
    tv.tv_usec = 0;
    FD_ZERO (&rd);
    FD_SET (0, &rd);
    select (FD_SETSIZE, &rd, NULL, NULL,&tv);
    if (FD_ISSET (0, &rd)) return 1;
    return 0;
}

или так:
Код
int kbhit () {
    int count = 0;
    if (ioctl (0, FIONREAD, &count) == 0)
        return count;
    return 0;
}

Далее см хелп у мелкомягкого.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 00:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016