Typy vstupov
-
Fata! ChaoS
Star
- Príspevky: 650
- Registrovaný: 12 apr 2006, 20:23
- Bydlisko: Tvrdošovce
- Kontaktovať používateľa:
Typy vstupov
Ahojte, ako by sa dal načítať nejaký reťazec, tak aby sa ukončilo načítavaní po zadaní nejakého znaku? Ale bez použití neštandartných knižníc, t.j. getch() nie.
-
Fata! ChaoS
Star
- Príspevky: 650
- Registrovaný: 12 apr 2006, 20:23
- Bydlisko: Tvrdošovce
- Kontaktovať používateľa:
Sorry ponáhlal som sa, tak som na pár vecí zabudol, no hej, má to byť v C, ale nebudeš vedieť tak to môže byť aj v pascale, v tom som to ešte neskúšal, najprv to skúsim v C-čku.
Takže program od teba pýtať nejaký vstup a záps vstpu sa preruší vtedy keď sa zatlačí nejaké písmeno, či znak, čiže nie pomocou enteru ukončím vstup, ale pomocou nejakého znaku, takže pomocou cin sa ti asi nedá, ale tiež sa nesmie použiť neštandartná knižnica.
Takže program od teba pýtať nejaký vstup a záps vstpu sa preruší vtedy keď sa zatlačí nejaké písmeno, či znak, čiže nie pomocou enteru ukončím vstup, ale pomocou nejakého znaku, takže pomocou cin sa ti asi nedá, ale tiež sa nesmie použiť neštandartná knižnica.
No v pascale som vykuchtil nieco taketo:
readkey ale neviem ako je v C a ci na to treba nejaku megakniznicu. Ale myslim, ze nie... ci? 
Kód: Vybrať všetko
repeat
key:=readkey;
write(key);
until(key='s');-
feromakovi
Expert
- Príspevky: 165
- Registrovaný: 24 okt 2008, 14:16
- Bydlisko: Bánovce nad Bebravou
odpoveď
zdravím, pochopil som že ide o C
daj
#include<conio.h> je to štandardná knižnica
.
.
.
a príkaz je ch=getche();
vlastne ti to bude čítať znaky stlačené na klávesnici naj v nejakom cykle a môžeš ich napr hneď prideľovať do pamäte.
keby si to chcel tak aby sa tie znaky nevypisovali na obrazovku malo by to byť cez ch=getch();
myslím že to by mala byť tvoja odpoveď a teda ak išlo o C.
daj
#include<conio.h> je to štandardná knižnica
.
.
.
a príkaz je ch=getche();
vlastne ti to bude čítať znaky stlačené na klávesnici naj v nejakom cykle a môžeš ich napr hneď prideľovať do pamäte.
keby si to chcel tak aby sa tie znaky nevypisovali na obrazovku malo by to byť cez ch=getch();
myslím že to by mala byť tvoja odpoveď a teda ak išlo o C.
-
Fata! ChaoS
Star
- Príspevky: 650
- Registrovaný: 12 apr 2006, 20:23
- Bydlisko: Tvrdošovce
- Kontaktovať používateľa:
LOL chalan, díky za ochotu, lae prečítaj si môj prvý príspevok, že getch()
nie. A ináč conio.h nie je štandartná knižnica, podľa mojich vedomostí.
Ale ináč má asi audiotrack pravdu, lebo sa to asi bez nadštandartných knižníc nedá
Lebo všade potrebujú enter na ukončenie.
Ináč ano getch() by fungoval, ale to je v conio knižnici.
nie. A ináč conio.h nie je štandartná knižnica, podľa mojich vedomostí.
Ale ináč má asi audiotrack pravdu, lebo sa to asi bez nadštandartných knižníc nedá
Ináč ano getch() by fungoval, ale to je v conio knižnici.
-
johny3212
Star
- Príspevky: 532
- Registrovaný: 17 feb 2008, 19:56
- Bydlisko: Terchova
- Kontaktovať používateľa:
no myslel som nieco taketo, ale problem moze byt, ze musis pouzit neaku standardnu kniznicu, ktora inicializuje klavesy, alebo ked som ja necel pouzit standardnu incializaciu klaves , tak som si vytvoril sruktury a nahadzal tam vlastne nazvy klaves a pridelil im hodnoty ASCI kodov podla normy a potom ete doriesit ako ich budes incializovat hardverovo.
Ak to nebudes vediet, tak musis pouzit neaku standardnu kniznicu napr.
#include <conio.h>, ktora vie pracovat z klavesami.
a principialne som myslel nieco taketo potom, nepotrebujes tam ziadny standardny getnico vstup a vystup ani tlacitko enter.
ale asi namiesto switch tam bude lepsie dat if() , kde budes testovat podminku, if() ma troska odlisne vlastnosti. pri if by ti to malo stale behat do okola a cakat na drzanie klavasy a potom ukonci cyklus a switch jednorazovo zreaguje na stlacenie a dost a nesplna viac podminku az na pustenie a dalsie stlacenie zreaguje, no neviem ci si ma pochopil
.
Ten program je iba principialny, zalezi ako vyriesis incializaciu klaves, ci pouzijes standardnu kniznicu, abo si taky frajo, ze si to nakodis sam
.
Ak to nebudes vediet, tak musis pouzit neaku standardnu kniznicu napr.
#include <conio.h>, ktora vie pracovat z klavesami.
a principialne som myslel nieco taketo potom, nepotrebujes tam ziadny standardny getnico vstup a vystup ani tlacitko enter.
Kód: Vybrať všetko
do {
if(kbhit()) // Ak je nieco stlacene
{ ch = getch(); //tak to nacita do ch
switch(ch)
{
case 0x00:
return;
break;
case '1':
return;
break;
default: printf("%c",ch);
}
}
} while(ch != 27);
Ten program je iba principialny, zalezi ako vyriesis incializaciu klaves, ci pouzijes standardnu kniznicu, abo si taky frajo, ze si to nakodis sam
Fata! ChaoS napísal:LOL chalan, díky za ochotu, lae prečítaj si môj prvý príspevok, že getch()
nie. A ináč conio.h nie je štandartná knižnica, podľa mojich vedomostí.
Ale ináč má asi audiotrack pravdu, lebo sa to asi bez nadštandartných knižníc nedáLebo všade potrebujú enter na ukončenie.
Ináč ano getch() by fungoval, ale to je v conio knižnici.
-
johny3212
Star
- Príspevky: 532
- Registrovaný: 17 feb 2008, 19:56
- Bydlisko: Terchova
- Kontaktovať používateľa:
alebo toto som tet pogooglil, ako moze detekovat klavesu
http://ap.urpi.fei.stuba.sk/ap/sources/ ... loha29.htm
http://ap.urpi.fei.stuba.sk/ap/sources/ ... loha29.htm
-
Fata! ChaoS
Star
- Príspevky: 650
- Registrovaný: 12 apr 2006, 20:23
- Bydlisko: Tvrdošovce
- Kontaktovať používateľa:
ja som našiel cin.getline sice je to c++ ..
Ako presne mu s tymto pomoze cin.getline?skkiller2 napísal:ja som našiel cin.getline sice je to c++ ..
getline sa pokial viem puziva na vstup retazca, sposobom cin.getline(slovo, pocet_znakov) ( napr. cin.getline(slovo, 256) )
A potom zmacknes enter.