NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Hlavičkový soubor pro getche

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Pavel Šůstek:16.2.2018 20:51

Prosím o informaci ,jaký hlavičkový soubor v jazyce c vyžadují funkce getche ,getch ,kbhit apod. CONIO.H to není ,jak je zveřejněno v příručce .Používám Cygwin64Terminal v kombinaci s NetBeans IDE 8.2 ,64bit.

 
Odpovědět
16.2.2018 20:51
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Pavel Šůstek
DarkCoder:16.2.2018 21:00

Tyto nestandardní funkce (getch(), getche(), kbhit(), a další) jsou skutečně součástí knihovny conio.h.
Podotýkám, že tyto funkce nejsou součástí ANSII.

Editováno 16.2.2018 21:03
Nahoru Odpovědět
16.2.2018 21:00
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovídá na DarkCoder
Pavel Šůstek:16.2.2018 21:50

DarkCodere (nebo někdo jiný) ,prosím Tě můžeš mi doporučit vývojové nástroje se zpřístupněnými těmito nestardardními funkcemi ?(getch(), getche(), kbhit(), a další) .Děkuji za odpověď .

 
Nahoru Odpovědět
16.2.2018 21:50
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Pavel Šůstek
DarkCoder:16.2.2018 22:44

Spíše než na IDE a tyto nestandardní funkce Tě odkáži na funkci, se kterou můžeš pracovat. Jedná se o funkci WINAPI GetAsyncKeyState() pracující s virtuálními kódy kláves. Pomocí této funkce (vyžaduje Windows.h) si pak můžeš vytvořit neblokující funkci determinující stisknutou klávesu.

Nahoru Odpovědět
16.2.2018 22:44
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovídá na DarkCoder
Pavel Šůstek:17.2.2018 18:03

Díky za tip ,jedná se o zajímavou funkci .Ještě by mne zajímalo ,zda jde pomocí ní (GetAsyncKeyS­tate()) jednoduše nasimulovat funkci getche() (příp.getch() ,kbhit()).

 
Nahoru Odpovědět
17.2.2018 18:03
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Pavel Šůstek
DarkCoder:17.2.2018 18:51

Samozřejmě že to jde, již jsem to zmínil v poslední větě svého předchozího příspěvku. Tak např. kbhit()

// my_kbhit()
int my_kbhit(void) {
        register int but;
        for (but = 0; but < 256; but++) {
                if (GetAsyncKeyState(but)) return but;
        }
        return 0;
}

Funkce vrací nulu pokud nebyla stisknuta klávesa, v opačném případě vrací ASCII hodnotu stisknutého znaku.
Tuto hodnotu pak mohu použít pro vytvoření funkcí my_getch() resp. my_getche().

Nahoru Odpovědět
17.2.2018 18:51
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Pavel Šůstek:22.2.2018 17:04

DarkCodere děkuji za inspiraci .Je to vděčné téma na procvičení programování .Něco jsem naprogramoval a pořád je co zlepšovat .Hodnotím pozitivně také tento portál .

 
Nahoru Odpovědět
22.2.2018 17:04
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Pavel Šůstek
DarkCoder:22.2.2018 18:20

Malá změna ve způsobu zpracování vstupu, velká změna v realizaci nápadů. Nemáš zač.

Nahoru Odpovědět
22.2.2018 18:20
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Martin Srdoš:13.10.2018 12:40

To říkám furt, itnetwork je nejlepší. Celej stackoverflow tohle neví :-) Díky DakrCoder.

 
Nahoru Odpovědět
13.10.2018 12:40
Avatar
Pavel Šůstek:13.10.2018 14:10

Musím též dodatečně podotknout ,že Itnetwork má vysokou úroveň .

 
Nahoru Odpovědět
13.10.2018 14:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.