summaryrefslogtreecommitdiff
path: root/reference/C/EXAMPLES/keyboard.c
blob: 61ced2cbc7d5653afbe79f35a57a1db6358c2cbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/****************************************************************************
 *
 * Purpose: Reset the keyboard from line mode to character mode and
 *          suppress the echo when a key is entered. This allow the
 *          program to get a character without the user pressing ENTER.
 *
 *          This is for UNIX systems. DOS users have getch and getche.
 *          Unix programers can also use curses.
 *
 * Author:  M.J. Leslie.
 * Date:    30-Mar-97
 *
 ****************************************************************************/

void SetKeyboard  (void);
void ResetKeyboard(void);

main()
{
  char          Characters[1024];
  int           Inc=0;

  memset(Characters, 0, 1024);
  
  printf("Press a load of characters (q=exit)\n");

  SetKeyboard();

  for(Inc = 0; (Characters[Inc] = getchar()) != 'q'; Inc++);
  
  ResetKeyboard();

  printf("You Pressed %s\n", Characters);
}

/* Set the keyboard. */

void SetKeyboard(void)
{
  system("stty raw -echo");
}

/* Return the keyboard to its original state. If this is not called
 * before the program ends, the keyboard will remain in its reconfigured
 * state.
 */

void ResetKeyboard(void)
{
  system("stty -raw echo");
}