Kilka sekund na podanie znaku (Konsola)

0

Witam.
Chciałbym napisać kod w którym użytkownik ma kilka sekund na napisanie danego znaku.
Napisałem coś takiego:
c= znak który osoba powinna przepisać
t=znak który osoba wprowadziła

 #include <iostream>
#include <string>
#include <ctime>
#include <conio.h>
using namespace std;

int main(){
    clock_t start, end;
    char c;
    char t;
    bool graj=1;
    cout<<"Wpisz podana cyfre (1-4) by wygrac\n";
    srand(time(NULL));
    c=rand()%4+49;
    cout<<"WPISZ "<<c<<" !!!\n";
    start = clock();
    while(graj){
        end = clock();
        //t=getch();
        if(((double)(end-start)/(double)CLOCKS_PER_SEC)>1.1){
            graj=0;
        }
    }
    return 0;
}

Jendak kiedy odkomentuje t=getch() to program cały czas czeka na podanie znaku (zamiast czekać i sprawdzać warunek)
Czy da to się w ogóle napisać taki program w konsoli?

1

Przeczytaj o funkcji kbhit() z biblioteki conio.h, lub po prostu zacznij programować okienkowo

0

Albo użyj NCurses.

0

M.
Dzięki
Może komuś się przyda

  #include <iostream>
#include <string>
#include <ctime>
#include <conio.h>
using namespace std;

int main(){
        clock_t start, end;
        char c;
        char t;
        bool graj=1;
        cout<<"Wpisz podana cyfre (1-4) by wygrac\n";
        srand(time(NULL));
        c=rand()%4+49;
        cout<<"WPISZ "<<c<<" !!!\n";
        start = clock();
        while(graj){
                end = clock();
                //t=getch();
                if(((double)(end-start)/(double)CLOCKS_PER_SEC)>2.1){
                        graj=0;
                }
                if(kbhit()){
                    t=getch();
                    if(c==t){
                    cout<<"Brawo";break;
                    }
                }
        }

        return 0;
}

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