Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Kuidas c konsooliprogrammis nooltega valitavat esemet teha. märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
.Eestlane.
HV kasutaja
.Eestlane.

liitunud: 14.01.2006




sõnum 16.06.2008 11:47:53 Kuidas c konsooliprogrammis nooltega valitavat esemet teha. vasta tsitaadiga

Mitmetes konsooliprogrammides on tihtipeale võimalus midagi valida nooltega ja siis enterit vajutada, selle asemel et kasutaja peab sisestama y(es) või n(o) või a, b,c vms. Kuidas on seda võimalik teha?
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
mihkelv
HV kasutaja

liitunud: 25.02.2004




sõnum 16.06.2008 11:54:55 vasta tsitaadiga

Peab õiget teeki kasutama. Linuxil on selleks ncurses.
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 5
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ohohh
Kreisi kasutaja
Ohohh

liitunud: 13.09.2003




sõnum 16.06.2008 12:01:17 vasta tsitaadiga

getchar
http://www.cplusplus.com/reference/clibrary/cstdio/getchar.html

Noole klahvi korral peaks tulema kaks jäjestikust baiti. Seda, mis need baidid täpselt on saad teada, kui teed mingi lihtsa programmi, mis trükib kõik getchariga vastu võetud baidi väärtused ekraanile.

Siis muudad mingi teksti värvi vastavalt sellele, kas vajutati üles või alla noolt.
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
.Eestlane.
HV kasutaja
.Eestlane.

liitunud: 14.01.2006




sõnum 16.06.2008 12:06:48 vasta tsitaadiga

Tänan, mihkelv. Win32 üks võimalikest alternatiividest tundub olevat PDCurses.
Ning tänan, Ohohh, getchari puhul muidugi üksi on vähe, aga sa vist mõtlesidki, et kasutataks näiteks koos ncurses/PDCursesiga.
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
qratman
HV kasutaja
qratman

liitunud: 25.11.2003




sõnum 16.06.2008 21:21:02 vasta tsitaadiga

Ohohh kirjutas:

Noole klahvi korral peaks tulema kaks jäjestikust baiti. Seda, mis need baidid täpselt on saad teada, kui teed mingi lihtsa programmi, mis trükib kõik getchariga vastu võetud baidi väärtused ekraanile.

Siis muudad mingi teksti värvi vastavalt sellele, kas vajutati üles või alla noolt.


Küsin vahele. Siis peaks umbes sellise progammiga olema võimalik ju välja lugeda noolte koodid aga selle programmiga käituvad noole klahvid kursori liigutajatena ja koodi siit ma küll välja ei loe. Samas tähtede ASCII koodi kuvab ilusti(kui neid char'ina vaadata) Kuidas saaks ikkagi noole klahvide koodid kätte?
#include "stdio.h"

int main(int argc, const char *argv[])
{
   int alpha;
   
   while(1)
   {
      alpha = getchar();
      printf("%d", alpha);
      if(alpha == 'q')
         break;
   }
   
   return 0;
}
Kommentaarid: 28 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 27
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 16.06.2008 21:53:51 vasta tsitaadiga

tsitaat:
Samas tähtede ASCII koodi kuvab ilusti(kui neid char'ina vaadata) Kuidas saaks ikkagi noole klahvide koodid kätte?

Vasakule 75
Paremale 77
Alla 80
Ülesse 72
Esc 27
Basicus käib asi selliselt:

DO

a$ = INKEY$: la = LEN(a$)

IF la = 2 THEN k = ASC(RIGHT$(a$, 1))
IF la = 1 THEN k = ASC(a$)
IF la = 0 THEN k = 0

IF k <> 0 THEN PRINT "kood"; k

LOOP UNTIL k = 27

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ohohh
Kreisi kasutaja
Ohohh

liitunud: 13.09.2003




sõnum 17.06.2008 08:53:38 vasta tsitaadiga

qratman kirjutas:
Ohohh kirjutas:

Noole klahvi korral peaks tulema kaks jäjestikust baiti. Seda, mis need baidid täpselt on saad teada, kui teed mingi lihtsa programmi, mis trükib kõik getchariga vastu võetud baidi väärtused ekraanile.

Siis muudad mingi teksti värvi vastavalt sellele, kas vajutati üles või alla noolt.


Küsin vahele. Siis peaks umbes sellise progammiga olema võimalik ju välja lugeda noolte koodid aga selle programmiga käituvad noole klahvid kursori liigutajatena ja koodi siit ma küll välja ei loe. Samas tähtede ASCII koodi kuvab ilusti(kui neid char'ina vaadata) Kuidas saaks ikkagi noole klahvide koodid kätte?
#include "stdio.h"

int main(int argc, const char *argv[])
{
   int alpha;
   
   while(1)
   {
      alpha = getchar();
      printf("%d", alpha);
      if(alpha == 'q')
         break;
   }
   
   return 0;
}


Minu viga. icon_neutral.gif

Kui mina ammustel aegadal taolisi asju tegin, siis kasutasin sellist asja nagu Borland c++ ja ilmselt kasutasin headerit nimega conio.h ( http://en.wikipedia.org/wiki/Conio.h ),
kus getchar ja getch, mis ei vajanud enteri vajutamist (minu arust olid olemas ka mingid funktsioonid kursori liigutamiseks. Turbo Pascalis vähemalt olid)

Ma ei tulnud selle pealegi, et gcc's neid standardi hulgas ei ole. Pead ikkagi mingeid lisa librarisid kasutama...
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Kuidas c konsooliprogrammis nooltega valitavat esemet teha.
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.