|
| Readkey + uppercase Fra : Michael Thomsen |
Dato : 12-02-01 22:27 |
|
Jeg mangler en funktion, der virker som Pascals readkey, dvs. input én
tast. scanf("%c",..) kræver at man trykker enter, og det er ikke
meningen.
getch() er så vidt jeg kan se ikke ansi c kompatibel?
Ligeledes mangler jeg en lower/uppercase funktion
--
Regards 'n' stuff,
Michael Thomsen, Birkerød / Denmark
Currently: Boca Raton / Florida
http://fly.to/thomsen
--- Letterman - Release 1 (Beta)
--- Rigtige mænd har HAFT job i forsvaret!
| |
Dansoft Denmark (13-02-2001)
| Kommentar Fra : Dansoft Denmark |
Dato : 13-02-01 05:34 |
|
--
"Michael Thomsen" <REMOVEMEmt123@bigfoot.com> wrote in message
news:3A885509.D5283372@bigfoot.com...
>
> Ligeledes mangler jeg en lower/uppercase funktion
>
brug tolower(.........) og toupper(........) begge funktioner er ANSI
C kompatible
Hilsen Torben
E-Mail: dansoft-denmark@dansoft-denmark
URL: http://www.dansoft-denmark.dk
| |
Bertel Lund Hansen (13-02-2001)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-02-01 09:10 |
|
Michael Thomsen skrev:
>getch() er så vidt jeg kan se ikke ansi c kompatibel?
Det er der heller ikke andre der er. Enten giver du op, eller
også bruger du getch(). Jeg gør det sidste.
--
Bertel http://lundhansen.dk/bertel/
FIDUSO: http://fiduso.dk/
| |
Michael Thomsen (13-02-2001)
| Kommentar Fra : Michael Thomsen |
Dato : 13-02-01 17:28 |
|
Bertel Lund Hansen wrote:
>>getch() er så vidt jeg kan se ikke ansi c kompatibel?
>
> Det er der heller ikke andre der er. Enten giver du op, eller
> også bruger du getch(). Jeg gør det sidste.
Æv, hvordan gør man så under Unix?
--
Regards 'n' stuff,
Michael Thomsen, Birkerød / Denmark
Currently: Boca Raton / Florida
http://fly.to/thomsen
--- Letterman - Release 1 (Beta)
--- Rigtige mænd har HAFT job i forsvaret!
| |
Kent Friis (13-02-2001)
| Kommentar Fra : Kent Friis |
Dato : 13-02-01 17:42 |
|
Den Tue, 13 Feb 2001 11:28:02 -0500 skrev Michael Thomsen:
>Bertel Lund Hansen wrote:
>
>>>getch() er så vidt jeg kan se ikke ansi c kompatibel?
>>
>> Det er der heller ikke andre der er. Enten giver du op, eller
>> også bruger du getch(). Jeg gør det sidste.
>
>Æv, hvordan gør man så under Unix?
Med curses: getch()
(kræver initialisering af curses først, dvs. fuldskærmsprogram)
Uden curses: getchar()
(efter at have slået cooked-mode fra[1])
Mvh
Kent
[1] Det modsatte af cooked hedder raw-mode, ikke at forveksle med
scancondes.
--
http://www.celebrityshine.com/~kfr - nu med thumbnails på grafiksiderne.
| |
Martin Moller Peders~ (13-02-2001)
| Kommentar Fra : Martin Moller Peders~ |
Dato : 13-02-01 18:01 |
|
In <3A896092.8D3608AC@REMOVEMEbigfoot.com> Michael Thomsen <thomsen@mailhost.net> writes:
>Bertel Lund Hansen wrote:
>>>getch() er så vidt jeg kan se ikke ansi c kompatibel?
>>
>> Det er der heller ikke andre der er. Enten giver du op, eller
>> også bruger du getch(). Jeg gør det sidste.
>Æv, hvordan gør man så under Unix?
Slaar op i "The GNU C Library Reference Manual" Volume 1
side 465 og fremefter
Hmm. Jeg kan ikke lige finde den 100% rigtige loesning, men
det du soeger efter hedder "Noncanonical input processing mode" og
bliver styret af c_lflag i struct termios ( unistd.h )
Mvh
Martin
| |
Byrial Jensen (13-02-2001)
| Kommentar Fra : Byrial Jensen |
Dato : 13-02-01 22:53 |
|
Michael Thomsen <thomsen@mailhost.net> skrev:
>Bertel Lund Hansen wrote:
>
>>>getch() er så vidt jeg kan se ikke ansi c kompatibel?
>>
>> Det er der heller ikke andre der er. Enten giver du op, eller
>> også bruger du getch(). Jeg gør det sidste.
>
>Æv, hvordan gør man så under Unix?
Typisk vil man bruge et bibliotek som f.eks. ncurses til styring af
terminalen. Så vil programmet nemlig være portabelt mellem de
systemer som det brugte bibliotek er porteret til, og man undgår
problemer med forskelle på forskellige terminaltyper.
Her er et lille eksempel på et ncursesprogram til Linux (det virker
sandsynlig også på adskillige andre Unix-varianter) som konstant
viser klokken med 1/100-del sekunds nøjagtighed på linje 2, position
2 og fremefter, indtil der trykkes på en vilkårlig tast:
#include <curses.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdlib.h>
int main ()
{
(void) initscr (); /* Initialiser terminal */
(void) cbreak (); /* Slå linje-buffering fra */
(void) noecho (); /* Slå ekko fra */
(void) timeout (0); /* Lad getch() returnere umiddelbart */
(void) curs_set (0); /* Slå markøren fra */
while (getch () == ERR) /* Fortsæt indtil der trykkes på en tast */
{
struct timeval tv;
struct timezone tz;
int time;
int minut;
int sekund;
(void) gettimeofday (&tv, &tz);
sekund = tv.tv_sec % 60;
tv.tv_sec /= 60;
minut = tv.tv_sec % 60;
tv.tv_sec /= 60;
time = tv.tv_sec % 24;
(void) mvprintw (2, 2, "%02d:%02d:%02d,%02d", time, minut, sekund,
tv.tv_usec / 10000); /* Udskriv klokken */
(void) refresh (); /* Opdatér terminalen */
}
(void) endwin (); /* Normalisér terminal */
return EXIT_SUCCESS;
}
| |
Michael Thomsen (15-02-2001)
| Kommentar Fra : Michael Thomsen |
Dato : 15-02-01 18:33 |
|
Byrial Jensen wrote:
>>>>getch() er så vidt jeg kan se ikke ansi c kompatibel?
>>Æv, hvordan gør man så under Unix?
>Typisk vil man bruge et bibliotek som f.eks. ncurses
Tak for alle svarene, det ser ud til, at jeg må se at få kigget på det
forbandede curses...
--
Regards 'n' stuff,
Michael Thomsen, Birkerød / Denmark
Currently: Boca Raton / Florida
http://fly.to/thomsen
--- Letterman - Release 1 (Beta)
--- Do you listen to the voices you hear?
| |
|
|