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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
usernet009
24 / 24 / 1
Регистрация: 28.12.2009
Сообщений: 85
#1

Проверка : нажал ли пользователь клавишу - C++

14.07.2010, 00:33. Просмотров 1887. Ответов 3
Метки нет (Все метки)

Извиняюсь за тупой вопрос. Нужна функция которая проверяет, нажал ли пользователь какую то клавишу или нет. Знаю только наподобие getch() cin.get() cin.peek() но это не то.. если пользователь ничего не нажимал то функции ЖДУТ нажатия, а мне нужно чтоб цикл продолжался без остановок.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2010, 00:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка : нажал ли пользователь клавишу (C++):

Проверка, ввел ли пользователь что-нибудь на клавиатуре? - C++
Надо узнавать каждую 1/10 сек, ввел ли пользователь что-нибудь на клаве. В VC++ 6. Не имею представления, как это сделать в консольном...

посчитать количество буковок(5,10,20) которых я нажал и записать в файл суму нажатий.. - C++
Есть клавиатура нужно посчитать количество буковок(5,10,20) которых я нажал и записать в файл суму нажатий, но программа должна быть в трее.

Как узнать, когда пользователь нажал на левую клавишу мыши? - C++ Builder
Пишу программу автокликер.Мне надо узнать когда пользователь нажал на левую клавишу мыши. Как это сделать? И еще надо сделать чтоб...

Как обработать сообщение, что пользователь нажал на цифровую клавишу? - C++ WinAPI
К примеру приходит сообщение что пользователь нажал на клавишу и она оказалась цифрой , например 1 , какой тогда должна быть проверка ? ...

Программа которая анализирует, какую клавишу нажал пользователь и выводит сообщение - C (СИ)
Помогите написать программу, буду благодарен! Само задание такое: Напишите программу, которая анализирует, какую клавишу нажал...

Загружается черный экран с мышью после того, как при загрузке нажал случайно какую-то клавишу и включился скандиск - Windows 7
Всем привет!!! У меня такая проблема Не загружается Windows 7 и не восстанавливается с диска. Вернее загружается черный экран с мышью и...

3
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
14.07.2010, 01:49 #2
есть select() на лине, пример там в man'е про stdin
1
usernet009
24 / 24 / 1
Регистрация: 28.12.2009
Сообщений: 85
14.07.2010, 01:53  [ТС] #3
Оо... спасибо, буквально минуту назад нашел подходящую.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
KBHIT
            
               #include <conio.h>     /* требуется только для объявления функции */
               int kbhit();
               
               /* Описание.
            
               Функция kbhit проверяет нажатие клавиши на консоли.
            
               Возвращаемое значение.
            
         
               Функция  kbhit  возвращает ненулевое значение, если клавиша
         нажата. В противном случае возвращается 0.
            
               Пример: */
           
               #include <conio.h>
               int result;
               /* следующий оператор проверяет, была ли нажата клавиша */
            result = kbhit();
               /* если результат result ненулевой, буфер  ожидает  нажатие
         клавиши.  Ее можно задать при помощи getch или getche. Если getch
         или getche были вызваны функцией kbhit  без  проверки,  программа
         делает паузу и ожидает ввод символа. */
1
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
14.07.2010, 02:34 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
usernet009, немного не по теме, но для разнообразия: програмка для *NIX ждёт пользовательского ввода 10 секунд, если ввода небыло, выдаёт сообщение и ждёт ещё 10 секунд. Если ввод был, выводит его и снова ждёт, если только quit не ввести... Ввод заканчивается клавишей enter, если это не желательно, прийдётся пошаманить немного - был уже похожий пример на форуме...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
 
#define TIMEOUT 10
 
int main(void){
    char buf[BUFSIZ], * p;
    struct timeval tv;
    fd_set readfds;
    int ret, len;
 
    while ( 1 ){
        FD_ZERO(&readfds);
        FD_SET(STDIN_FILENO, &readfds);
        tv.tv_sec = TIMEOUT;
        tv.tv_usec = 0;
 
        ret = select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv);
 
        if ( ret == -1 ){
            perror("select");
            exit(EXIT_FAILURE);
        }
        else if ( ! ret ){
            printf("No user input after %d seconds\n", TIMEOUT);
            continue;
        }
 
        if ( FD_ISSET(STDIN_FILENO, &readfds) ){
            len = read(STDIN_FILENO, buf, BUFSIZ - 1);
            if ( len == -1 ){
                perror("read");
                exit(EXIT_FAILURE);
            }
            buf[len] = '\0';
            if ( p = strrchr(buf, '\n') )
                *p = '\0';
            printf("User input: %s\n", buf);
            if ( ! strcmp(buf, "quit") )
                break;
        }
    }
 
    exit(EXIT_SUCCESS);
}
Проверка : нажал ли пользователь клавишу
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2010, 02:34
Привет! Вот еще темы с ответами:

Checkbox нажал пользователь или алгоритм? - C#
Добрый день! При загрузке программы выставляются сохраненные значения Checkbox-ов. При этом срабатывает событие CheckedChenged и...

Как узнать, на какую кнопку нажал пользователь? - jQuery
Есть некая база данных с которой считываем вопрос и ответы к нему printf(&quot;&lt;h3&gt;Вопрос: $text&lt;/h3&gt;&lt;br/&gt;&quot;); $query =...

Проверить не нажал ли пользователь кнопку завершения работы - Visual Basic .NET
Как проверить не нажал ли пользователь кнопку завершения работы в меню пуск?

Как отследить в Edit, что пользователь нажал Enter? - C++ WinAPI
Господа извеняюсь за такой наивный вопрос , но что то совсем не получается сделать . Как отследить в Edit , что пользователь нажал Enter...


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

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

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