Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2010, 15:40   #1
Catharsis
Пользователь
 
Регистрация: 03.05.2010
Сообщений: 12
По умолчанию Почему _kbhit возвращает TRUE при отсутствии нажатий?

Почему _kbhit возвращает TRUE при отсутствии нажатий?
Есть такой кусок:

Код:
if(_kbhit())
         {		
            if ((GetKeyState(VK_SPACE)==-127)||(GetKeyState(VK_SPACE)==-128))
	cout << kbhit(); // клавиши не нажимаются но выдает 1, т.е. заходит таки в эту ветку IF
         }
После до первого нажатия после запуска все норм - _kbhit()==0 , но после одного захода в ветку, _kbhit() так и остается равным 1. почему?
Catharsis вне форума Ответить с цитированием
Старый 01.08.2010, 15:54   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

http://programmersforum.ru/showthread.php?t=91973
Vago вне форума Ответить с цитированием
Старый 01.08.2010, 16:21   #3
Catharsis
Пользователь
 
Регистрация: 03.05.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение
спасибо!
Цитата:
Потому что ф-я kbhit() только определяет, есть во входном потоке хотя бы один символ или нет. И всё! Ежели он (символ) там есть, kbhit() его не извлекает.
я так понимаю извлекает его оттуда и оставляет ноль getch(). а можно каким нибудь другим способом извлечь или обратить в ноль входной поток?) просто делаю программу управления курсором, а getch() не подходит т.к. имеет особенность после 1го нажатия и удержания залипать на некоторое время прежде чем повторяться, а нужно мгновенно двигать курсор..
Catharsis вне форума Ответить с цитированием
Старый 01.08.2010, 17:40   #4
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Как разновидности - getc(), getchar(), scanf()... Но я, честно говоря, не очень понимаю описанную проблему. Там в логике программы никаких хомутов нет?...
Vago вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему DialogBox возвращает (-1) ? vassel Общие вопросы C/C++ 5 17.01.2010 23:30
Почему функция не возвращает никакое значение? Тупой Общие вопросы Delphi 1 31.05.2009 17:31
В Image Transparen = true - тормоза при рисовании lexaltd Мультимедиа в Delphi 0 28.09.2008 16:03
idHTTP при нерабочем сайте возвращает ошибку Yuran Работа с сетью в Delphi 5 26.05.2008 14:37
как после определенного просчета, при нажатий флажка, результат записался там навечно Илюха1 Microsoft Office Excel 3 07.11.2007 20:01