If sprawdzający czy uzytkownik zdążyl wcisnąc klawisz.

0

Witam
Czy da się zrobić if'a który sprawdzi czy klawisz np. "w" został naciśnięty w określonym czasie?

for(;;)
{
znak=getch()
cout << "Kliknij w kiedy wyskoczy gwiazdka"<<endl;
sleep(1500);
cout << "*"<<endl;
switch(znak)
if (nie_wiem_jaki_warunek )
     {
   case 'w':
        cout << "Zdazyles"

     }
     else 
        cout << "Sprobuj raz jeszcze"<<endl;
}
1

Nie za pomocą standardowych funkcji obsługi wejścia/wyjścia. Ale na windowsie i linuksie są na to sposoby, tylko pytanie gdzie chcesz to sprawdzić.

1

Jeśli synchronicznie i niezależne od systemu to proste:

#include <chrono>
#include <iostream>

int main() {
    char c;
    auto timeSlot = std::chrono::seconds(3);
    std::cout << "Naciśnij enter w przeciągu " << timeSlot.count() << " sekund.\n";
    auto start = std::chrono::high_resolution_clock::now();
    std::cin >> std::noskipws >> c;
    auto stop = std::chrono::high_resolution_clock::now();

    auto diffTime = std::chrono::duration_cast<std::chrono::seconds>(stop - start);
    if(diffTime > timeSlot) {
        std::cout << "Nacisnąłeś enter po czasie.\n";
    } else {
        std::cout << "Dziękuję. Enter wprowadzony o czasie.\n";
    }
}

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