Keyboard input/Keypress check: Difference between revisions

m (Tidied up Delphi example)
Line 20:
<lang basic>10 REM k$ will be empty, if no key has been pressed
20 LET k$ = INKEY$</lang>
=={{header|C}}==
For POSIX systems. Ctrl-C to stop:<lang C>#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
 
void set_mode(int want_key)
{
static struct termios old, new;
if (!want_key) {
tcsetattr(STDIN_FILENO, TCSANOW, &old);
return;
}
 
tcgetattr(STDIN_FILENO, &old);
new = old;
new.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &new);
}
 
int get_key()
{
int c = 0;
struct timeval tv;
fd_set fs;
tv.tv_usec = tv.tv_sec = 0;
 
FD_ZERO(&fs);
FD_SET(STDIN_FILENO, &fs);
select(STDIN_FILENO + 1, &fs, 0, 0, &tv);
 
if (FD_ISSET(STDIN_FILENO, &fs)) {
c = getchar();
set_mode(0);
}
return c;
}
 
int main()
{
int c;
while(1) {
set_mode(1);
while (!(c = get_key())) usleep(10000);
printf("key %d\n", c);
}
}</lang>
 
=={{header|C sharp|C#}}==
<lang csharp>string chr = string.Empty;
Anonymous user