Article View: be.comp.programming
Article #13236Re: invoer zonder enter in C
From: Staf Wagemakers
Date: Tue, 14 Aug 2001 16:55
Date: Tue, 14 Aug 2001 16:55
50 lines
2460 bytes
2460 bytes
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:
<slrn9nilul.1dl.stafwag@freeware.sam.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!news.maxwell.syr.edu!bnewspeer01.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.be.uu.net!not-for-mailReferences:
<mfae7.52589$ye.2592364@afrodite.telenet-ops.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-14 10:03:22 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!newsfeed.google.com!sn-xit-02!supernews.com!newsfeed.direct.ca!look.ca!news.maxwell.syr.edu!bnewspeer01.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.be.uu.net!not-for-mail Newsgroups: be.comp.programming From: stafwag@f2s.com (Staf Wagemakers) Subject: Re: invoer zonder enter in C References: <mfae7.52589$ye.2592364@afrodite.telenet-ops.be> Organization: Debian GNU/Linux (woody) Message-ID: <slrn9nilul.1dl.stafwag@freeware.sam.be> User-Agent: slrn/0.9.7.1 (Linux) Date: 14 Aug 2001 16:55:17 GMT Lines: 50 NNTP-Posting-Host: uu212-190-114-162.unknown.uunet.be X-Trace: 997808117 news.be.uu.net 7117 212.190.114.162 X-Complaints-To: abuse@be.uu.net