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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2010, 12:53   #1
LLIyPI/IK
Новичок
Джуниор
 
Регистрация: 12.02.2010
Сообщений: 5
По умолчанию завершение цикла при нажатии клавиши

люди помогите пожалуйста. в общем суть такова что у меня есть цикл который должен работать с задержкой в 50 милисекунд, до тех пор пока я не нажму какую-либо клавишу.
возможно это сделать без перехвата прерывания от клавиатуры на ассемблере? если да, можете написать как. буду очень благодарен. заранее спасибо!
LLIyPI/IK вне форума Ответить с цитированием
Старый 12.02.2010, 13:02   #2
Корвин
Пользователь
 
Аватар для Корвин
 
Регистрация: 07.02.2010
Сообщений: 31
По умолчанию

Код:
#include "windows.h"
#include "iostream"
using namespace std;
//32 = пробел
int main(){
while(true){
cout << "While ";
if(GetAsyncKey(32) < 0) break;
Sleep(50);
}
cout << "End while";
return 0;}
#define true false
У сверхпрограммы будут сверхглюки, ха-ха!
Корвин вне форума Ответить с цитированием
Старый 12.02.2010, 13:08   #3
LLIyPI/IK
Новичок
Джуниор
 
Регистрация: 12.02.2010
Сообщений: 5
По умолчанию

кстати забыл сказать делаю я на борланде 3.1
вот допустим так...
Код:
while (1) {
	delay(300);
	hex.move((int) random(40)-20, (int) random(40)-20);
        if (...) break;
}
как-то надо понять что клава используется...
может через потоки... там мож какие флаги... или все же проще вставку с ассемблера сделать и все?

на паскале есть простая реализация...
repeat until keypressed;
а в супер мега сишнике нет чтоли?

Последний раз редактировалось Stilet; 12.02.2010 в 13:16.
LLIyPI/IK вне форума Ответить с цитированием
Старый 12.02.2010, 13:13   #4
Корвин
Пользователь
 
Аватар для Корвин
 
Регистрация: 07.02.2010
Сообщений: 31
По умолчанию

Ну что то типа того.
Когда игрушку писал, это был единственный способо как перехватить клавишу не прерывая цыкла.
Да вобщем то он и остается.
В вашем случае ябы капнул в сторону GetKeyState() кажется она выдает информацию о нажатой клавише и ее статусе
#define true false
У сверхпрограммы будут сверхглюки, ха-ха!
Корвин вне форума Ответить с цитированием
Старый 12.02.2010, 13:14   #5
LLIyPI/IK
Новичок
Джуниор
 
Регистрация: 12.02.2010
Сообщений: 5
По умолчанию

да просто в борладне этого нифига нет
LLIyPI/IK вне форума Ответить с цитированием
Старый 12.02.2010, 13:17   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
да просто в борладне этого нифига нет
Как это нет? А функция kbhit из conio?
Или программа не консольная?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2010, 13:21   #7
LLIyPI/IK
Новичок
Джуниор
 
Регистрация: 12.02.2010
Сообщений: 5
По умолчанию

консольная

на GetAsyncKey он выдал мне function 'GetAsyncKey' should have a prototype
хотя и stream и windows подключены

Последний раз редактировалось Stilet; 12.02.2010 в 13:26.
LLIyPI/IK вне форума Ответить с цитированием
Старый 12.02.2010, 13:27   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
консольная
ну дык что мешает kbhit пользовать?
Даже в хелпе целый пример по ней есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.02.2010, 13:29   #9
LLIyPI/IK
Новичок
Джуниор
 
Регистрация: 12.02.2010
Сообщений: 5
По умолчанию

братан! большое спасибо! все зафурыкало!
LLIyPI/IK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача сообщения о нажатии клавиши в DOSBox Gerzs Общие вопросы Delphi 3 15.11.2009 19:02
Как послать в систему сообщение о нажатии клавиши? Gerzs Общие вопросы Delphi 7 24.10.2009 19:19
Обновление заданной области экрана при нажатии клавиши Jack Torrance Win Api 3 26.05.2008 10:57
Событие при нажатии клавиши Enter Inbox Общие вопросы Delphi 4 12.06.2007 14:18