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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 22:30   #1
Boвa
 
Регистрация: 21.05.2010
Сообщений: 6
Восклицание Как обойти getch() ?

Проблема вот в чем, мне нада штоб при вызове getch() он работал ток 5 или 10 сек, подождал пока нажмется клавиша и прога работала дальше. Как обойти я не знаю при вызове getch() ждет пока ненажмеш !!! У кого какие есть идеи ? Помогите !
Boвa вне форума Ответить с цитированием
Старый 21.05.2010, 23:22   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Именно через getch надо делать? sleep не проканает?
MaTBeu вне форума Ответить с цитированием
Старый 22.05.2010, 00:34   #3
Boвa
 
Регистрация: 21.05.2010
Сообщений: 6
По умолчанию

Мне на практику дали заадание зделать тамагочи простинькую игру. Проблема в том штоб каждые 10-20 сек радость и тд. параметры звирушки снижались и в тоже время мне нада штоб можно было в любой момент нажать клавишу покормить иль чот такое
я пробвал через kbhit ну я незнаю кк ево обнулить
вот кусок кода
Код:
for(;;){
               knopka(20,260,15,clik);
               rabit(100,170,8,15,1);
               mood(moods);
               Sleep(2000);
               if(kbhit()){
                    temp=getch();
                    if(temp==114){
                           if(moods<=70)
                                 moods+=15;
                           }
                    }
               Sleep(20000);
               moods-=9;
               }
я безпонятия как зделать
moods-----ет типа настоение

Последний раз редактировалось MaTBeu; 22.05.2010 в 11:35.
Boвa вне форума Ответить с цитированием
Старый 22.05.2010, 04:57   #4
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

используй Timer например. http://www.helloworld.ru/texts/comp/...alc/vc2/10.htm
Запускаешь таймер, принимаешь сообщение от него, изменяешь параетры нужные и запускаешь таймер еще раз.
rrrFer вне форума Ответить с цитированием
Старый 22.05.2010, 09:22   #5
Boвa
 
Регистрация: 21.05.2010
Сообщений: 6
По умолчанию

А дайте кусок кода пожалуста и обясните по возможности как с таймером работать.
Boвa вне форума Ответить с цитированием
Старый 22.05.2010, 17:34   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Да, собственно, зачем таймер, едва ли его можно использовать в консольном приложении ) Наиболее простым решением, ИМХО, будет проверять разницу текущего времени и предыдущего(сохранённого ранее), в случае превышения этой разницы 5-10 секунд, выходить из цикла.
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>

int main()
{
	time_t prevtime = time(NULL);
	time_t currtime;
	char   ch;
	
	while ( !kbhit() ) {
		currtime = time(NULL);
		if ( currtime - prevtime > 5 )
			break;
	}

	if ( kbhit() ) {
		ch = getch();
		printf("You pressed: %c\n", ch);
	} else
		puts("You didn't press key");

	return 0;
}
Вот, не проверял, но вроде всё правильно, а главное - идея должна быть понятна )

Последний раз редактировалось netrino; 22.05.2010 в 23:12.
netrino вне форума Ответить с цитированием
Старый 22.05.2010, 22:03   #7
Boвa
 
Регистрация: 21.05.2010
Сообщений: 6
Смех

netrino Cпасибо те большое !!!!!!! ураа я зделал практику Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо Cпасибо
Boвa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти пароль в Windows XP? tonich Безопасность, Шифрование 30 15.11.2011 18:11
Как обойти ограничения? HAMMAN Свободное общение 3 19.12.2009 14:57
Как обойти перенаправление mnikola2009 Работа с сетью в Delphi 5 27.11.2009 01:07
Как обойти защиту от прокси? mimitron Свободное общение 4 05.03.2009 10:18