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