Witam!
Napotkałem kolejny zonk w projekcie zaliczeniowym, mianowicie czas reakcji niby mierzy. Ale wszystko powinno się wykonać w tle (no odlicza 10,9,8.. [reszta w tle/ nie widać]) następnie powinny się wykonać instrukcje związane z wciśnięciem za wcześnie bądź w punkt plus po jakim czasie. Sprawa wygląda tak, jak jest 0 i kliknę klawisz "m" to wyskakuje mi po jakim czasie mi się udało trafić, lecz gdy celowo klikam np jak program ma tam 7 sekundę to nie przerywa tylko leci dalej do 0. Dopiero po osiągnięciu 0 wypisuje "Falstart" a powinno przerwać pętle, nie mam pojęcia jak to zrobić break nie może być, pętla for(;;) nie działa nie mam pomysłu. :)
#include <cstdlib>
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout << "Dzien dobry!" << endl << "To jest program do sprawdania czasu reakcji." << endl << "Prosze nacisnac klawisz enter, a po odczekaniu 10 sekund nacisnac klawisz 'm'!";
int kodASCII = getchar();
for (int i = 10; i > -1; i--)
{
Sleep(1000);
system("cls");
cout << i << endl;
}
int wynik;
for (int a = 0; a <= 1000000; a++)
{
Sleep(1);
wynik = a;
if (kbhit())
if (getch() == 'm') break;
}
if (wynik == 0)
{
cout << "Falstart!" << endl << "Nacisnales klawisz przed 0!" << endl;
}
else
{
cout << "Nacisnales po: " << wynik << " milisekundach." << endl;
}
system("PAUSE");
return 0;
}