
C++ Vstup jenž nepausne cyklus
Dobrý den, není nějaký příkaz jenž by reagoval na zmáčknutí klávesy a přitom napausnul cyklus? Napadá mě momentálně použít SDL, ale jako amatér začátečník si aktuálně nechci rozdělávat "sekci jenž bych jsem se musel učit" . Předem děkuji za odpovědi.
Neblokovací vstup z konzole? Zapomeň.
Leda by sis udělal thread, který čte konzoli a předával si to do hlavního threadu programu (třeba přes Observer).
A neexistuje nějaký příkaz jenž by po určitém čase vstup přeskočil?
Zkus zacit z druhe strany a poradne popsat, co vlastne chces udelat.
Dobrá, chci udělat kód ,jenž by se skládal z několika cyklů jenž by např. měnily barvu textu a přitom by se spouštěly nějaké zvukové efekty(tuto část už mám). Ale také chci abych kdykoliv mohl např. zmáčknutím num. 9 mohl změnit,či vypnout zvukové efekty nebo skončit cyklus.
např:
Cyklus(....)
{
sytem("color F9);
cout << "text";
"" vstup na zmáčknutí klavesy ""
if(...)
{
.....
}
cout << "konec";
V tom pripade to nedelej jako konzolovou aplikaci, tam totiz moc moznosti neni - neexistuje tam prijem zprav apod. Co ti brani osetrovat stisk klavesy v ramci cyklu? Muzes si zaregistrovat zpravy a reagovat na to, kdyz prijde zprava o stisku klavesy WM_KEYPRESS (pak musis v cyklu vynutit obcas zpracovani zprav), muzes v cyklu pouzit API volani GetAsyncKeyState na zjisteni stisknute klavesy be cekani (opet je treba obcas nechat program zpracovat zpravy)...
Asi jsem se zamiloval do funkce GetAsyncKeyState
Producent konzument.
https://en.wikipedia.org/wiki/Producer%E2%80%93con sumer_problem
Daj se vygooglit i celé kódy, pak stačí upravit producenta jako vstup z klávesnice.