[c] pobieranie znaków

0

Chodzi mi o pobranie znaku z klawiatury (wiem że do tego jest funcka getc()), ale tu chodzi mi o troche inny sposób. Jeśli użyje kodu:

char znak;
znak = getc();

To będzie czekało tak długo, dopi nie zostanie nacisnięty klawisz na klawiaturze.
Mi natomiast chodzi aby czekalo tylko n sekund. Tzn, jeżeli w ciągu n sekund nie zostanie naciśniety żaden klawisz to zmienna znak bedzie pusta i program zostanie wykonywany dalej Mam nadzieje że w miarę jasno wytlumaczylem o co mi chodzi :]

0

#include <conio.h>
#include <time.h>
rozwiązanie 1:
//Czeka przez pwien czas i wychodzi bez względu na to czy nacisnołeś kl czy nie.
char znak;
_sleep(10000); //czas w mili sekundach
if(kbhit())
{
znak=getch();
while(kbhit())getch();
}
else znak=0;

rozwiązanie 2:
//czeka przez pewien czas lub do naciśnięcia kl.

char znak;
time_t t1,t2;
time(&t1);
t2=t1;
for (znak=0;t2-t1<5;time(&t2))  //5 to czas w sekundach;
{
	if (kbhit())
	{
		znak=getch();
		break;
	}
}
0

thanks

1 użytkowników online, w tym zalogowanych: 0, gości: 1