Reakce na stisk tlacitka bez potvrzeni enterem – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Reakce na stisk tlacitka bez potvrzeni enterem – C / C++ – Fórum – Programujte.comReakce na stisk tlacitka bez potvrzeni enterem – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
polo0
Newbie
18. 6. 2006   #1
-
0
-

Cau, chci se zeptat jestli nekdo nevite jak v C(pouzivam Dev C++) udelat napr volbu ano/ne "[A/N]" tak ze stisknu A !!bez potvrzeni enterem!!. proste jen stisknu klavesu a program pokracuje. Zkousel jsem vraceni do bufferu(ungetc) ale nepomaha. Prosim vas poradte! Diky za pripadnou odpoved.

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Jakub0
Super člen
18. 6. 2006   #2
-
0
-

Jestli to dobře chápu, tak se snažíte udělat konzolovou aplikaci, která okamžitě reaguje na stisk určitých(A/N) kláves. Nejsem si na 100% jistý, ale budete muset sáhnout po API vašeho operačního systému. Pravděpodobně bude nejlepší, když trochu víc upřesníte váš dotaz.

Nahlásit jako SPAM
IP: ...–
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar TOPlist
Jura_0
Stálý člen
18. 6. 2006   #3
-
0
-

polo napsal:

Cau, chci se zeptat jestli nekdo nevite jak v C(pouzivam Dev C++) udelat napr volbu ano/ne "[A/N]" tak ze stisknu A !!bez potvrzeni enterem!!. proste jen stisknu klavesu a program pokracuje. Zkousel jsem vraceni do bufferu(ungetc) ale nepomaha. Prosim vas poradte! Diky za pripadnou odpoved.




#include <conio.h> // neni ve standardu
...
printf("Chces pokracovat? A/N");
while(toupper(getch()) != 'A')
fprintf(stderr, "nOpakujte znovu. A/N");


Nahlásit jako SPAM
IP: ...–
polo0
Newbie
19. 6. 2006   #4
-
0
-

No upresnit...: Takze mas konzolovou aplikaci a dojde na rozhodovani napr: Stiknete [A] pro vypis. Pri stisku A se provede treba printf("ahoj"); Zduraznuju stisknu A a provede se prikaz. To A nepotvrzuju enterem-proste jakmile stiknu A okamzite se neco provede. Ja delam v C asi rok-vicemene spise skola, ale myslel jsem ze tohle nebude problem ne? K tomu 2.prispevku ja do API absolutne nevidim nikdy jsem s tim nedelal-bohuzel:(( a fprintf je zapis do souboru stderr-ukazatel na typ FILE... Ja potrebuju uplne tu nejobycejnejsi vec. Po stisku klavesy(bez potvrzeni enterem)->provedeni jakehokoliv prikazu-at obycejny vypis nebo cokoliv jinyho.

Nahlásit jako SPAM
IP: ...–
Jura_0
Stálý člen
19. 6. 2006   #5
-
0
-

polo napsal:

No upresnit...: Takze mas konzolovou aplikaci a dojde na rozhodovani napr: Stiknete [A] pro vypis. Pri stisku A se provede treba printf("ahoj"); Zduraznuju stisknu A a provede se prikaz. To A nepotvrzuju enterem-proste jakmile stiknu A okamzite se neco provede. Ja delam v C asi rok-vicemene spise skola, ale myslel jsem ze tohle nebude problem ne? K tomu 2.prispevku ja do API absolutne nevidim nikdy jsem s tim nedelal-bohuzel:(( a fprintf je zapis do souboru stderr-ukazatel na typ FILE... Ja potrebuju uplne tu nejobycejnejsi vec. Po stisku klavesy(bez potvrzeni enterem)->provedeni jakehokoliv prikazu-at obycejny vypis nebo cokoliv jinyho.


K tomu memu. Neni to zadne WinAPI, jen to jsou vsechno prikazy standardniho C(az na funkci getch). V mem prikladu slo prave jen o tuto funkci. Bez urazky, ale myslel jsem, ze vas to, jako tazatele, napadne vyzkouset.


#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>


int main(int argc, char *argv[])
{
int pole[] = {1,2,3,4,5};
printf("Stiskni A pro vypis.");
int c = getch(); // precte znak z vstupni fronty
if(toupper(c) == 'A')
{
// tohle si nahradte cim uznate za vhodne
int j;
for ( j = 0; j < sizeof(pole)/sizeof(pole[0]); ++j)
printf("n%d-ty clen je roven %d.", j, pole[j]);
putchar('n'); // novy radek
}
getchar();
return 0;
}

Nahlásit jako SPAM
IP: ...–
Farundel0
Super člen
19. 6. 2006   #6
-
0
-

Odpoved je v Jurove prispevku ;o) Jdi na to pres funkci getch() deklarovanou v hlavickovem souboru conio.h. To by melo byt to, co potrebujes...

UPDATE: Aha, koukam, ze uz to rozepsal, takze ja uz nemusim. :o)

Nahlásit jako SPAM
IP: ...–
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
polo0
Newbie
19. 6. 2006   #7
-
0
-

Velice se Ti omlouvám JURO. Jsem ted nejak natvrdlej...Me nejak zmatl ten radek s tim stderr. Promin za hloupy dotaz:( Uz mi to jede DIK!

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 225 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý