/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
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?

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste