🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #13245

Re: invoer zonder enter in C

#13245
From: Hugo Marien
Date: Wed, 15 Aug 2001 15:40
71 lines
3086 bytes
Hallo,

Gemakkelijkste oplossing:

int ch;

if (!(ch = getch ())) ch = getch () + 256;

Levert in ch de ascii code if ch < 256 anders speciale toetsen (F1-F12,
ALT-A -ALT-Z, cursor Links, cursor rechts enz.)

Hugo

"Staf Wagemakers" <stafwag@f2s.com> wrote in message
news:slrn9nilul.1dl.stafwag@freeware.sam.be...
> In article <mfae7.52589$ye.2592364@afrodite.telenet-ops.be>, Thomas Raes
wrote:
> > Hallo allemaal,
> > Ik leer wat programmeren in C in mij vrije tijd (zelfstudie).
> > Nu zou ik graag in een programma de input van de gebruiker willen
gebruiken
> > (1 karakter)  zonder dat de gebruiker op enter moet duwen.
> > (Het programma moet blijven doorlopen als de gebruiker geen toets
induwt.)
> > Ik heb het al scanf() en getchar() geprobeerd maar deze functies wachten
> > altijd op enter voordat ze stoppen.
> >
>
> Er bestaan geen echte standaard C functies om een enkel karakter in te
lezen,
> als je een Unix console prgramma wil schrijven kan hiervoor de (n)curses
> library gebruiken. Linux Programming Guide ( te downloaden op
> http://www.linuxdoc.org ) beschrijft ncurses vrij uitgebreid.
>
> beneden vind je een voorbeeld dat karakter per karakter van het
toetsenbord
> inleest met getch() curses functie. De functie cbreak zorgt ervoor er
karakter
> per karakter gelezen wordt. Met nocbreak() wordt er gewacht op '\n'.
>
> #include <ncurses.h>
> int main()
> {
> int c;
> if (!initscr()) {
>    fprintf(stderr,"initscr() failed\n");
>    exit(1);
>    }
> keypad(stdscr,TRUE);
> nl();
> cbreak();
> /* noecho(); */
> scrollok(stdscr,TRUE);
> addstr("Type q to quit\n");
> do {
> c=getch();
> switch (c) {
>   case KEY_F(3): printw("You pressed F3\n");break;
>   case 2     :   printw("You pressed c-b\n");break;
>   }
>   refresh();
> } while ((c!='q')&&(c!=KEY_F(10)));
> endwin();
> }
>
>
> --
> Staf Wagemakers
>
> email      : stafwag@f2s.com
> homepage   : http://www.stafwag.f2s.com
Technical Details
Message-ID: <4Kwe7.728$6x5.227471@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <mfae7.52589$ye.2592364@afrodite.telenet-ops.be> <slrn9nilul.1dl.stafwag@freeware.sam.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,d04ac2edd4cf6c55
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2001-08-15 08:40:55 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: "Hugo Marien" <h.marien@pandora.be>
Newsgroups: be.comp.programming
References: <mfae7.52589$ye.2592364@afrodite.telenet-ops.be> <slrn9nilul.1dl.stafwag@freeware.sam.be>
Subject: Re: invoer zonder enter in C
Lines: 73
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
Message-ID: <4Kwe7.728$6x5.227471@afrodite.telenet-ops.be>
Date: Wed, 15 Aug 2001 15:40:48 GMT
NNTP-Posting-Host: 213.224.165.243
X-Complaints-To: abuse@pandora.be
X-Trace: afrodite.telenet-ops.be 997890048 213.224.165.243 (Wed, 15 Aug 2001 17:40:48 MET DST)
NNTP-Posting-Date: Wed, 15 Aug 2001 17:40:48 MET DST
Organization: Telenet Internet