User Tools

Site Tools


c:graphics.h:getch

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

c:graphics.h:getch [2015/05/06 23:06]
c:graphics.h:getch [2024/02/16 01:05] (current)
Line 1: Line 1:
 +===== getch =====
 +
 +
 +====Syntax of getch ==== 
 + <code c>
 +#include "graphics.h"
 +int getch(void);
 +  </code>
 +
 +
 +==== Description of getch ==== 
 +<code c>
 +The getch function is available in the winbgim implementation of BGI
 +graphics. You do not need to include conio.h; just include graphics.h.
 +The function reads one character from the keyboard and returns its ASCII
 +value (without waiting for a return key). In order to work, the user must
 +click in the graphics window (i.e., the Windows focus must be in the
 +graphics window). For special keys, the getch function first returns
 +ASCII 0. The next call will then return one of these special keys:
 +  #define KEY_HOME 71
 +  #define KEY_UP   72
 +  #define KEY_PGUP 73
 +  #define KEY_LEFT 75
 +  #define KEY_CENTER     76
 +  #define KEY_RIGHT77
 +  #define KEY_END  79
 +  #define KEY_DOWN 80
 +  #define KEY_PGDN 81
 +  #define KEY_INSERT     82
 +  #define KEY_DELETE     83
 +  #define KEY_F1   59
 +  #define KEY_F2   60
 +  #define KEY_F3   61
 +  #define KEY_F4   62
 +  #define KEY_F5   63
 +  #define KEY_F6   64
 +  #define KEY_F7   65
 +  #define KEY_F8   66
 +  #define KEY_F9   67
 +</code>
 +
 +
 +==== Example of getch ====
 +<code c>
 +#include "graphics.h"
 +#include <stdio.h>// Provides sprintf
 +#include <iostream.h>   // Provides cout
 +
 +void outintxy(int x, int y, int value);
 +
 +int main( )
 +{
 +    int i;
 +    char c;
 +
 +    // Initialize the graphics window.
 +    initwindow(400, 300);
 +
 +    // Convert some numbers to strings and draw them in graphics window:
 +    outtextxy(10, 10, "Here are some numbers:");
 +    for (i = 10; i <= 100; i += 10)
 +  outintxy(20, i+10, i);
 +
 +    // Get some characters from the keyboard until an X is typed:
 +    outtextxy(20, 130, "Click in this graphics window,");
 +    outtextxy(20, 140, "and then press arrow keys.");
 +    outtextxy(20, 150, "Watch the console window while pressing.");
 +    outtextxy(20, 160, "Press X to exit.");
 +    do
 +    {
 +  c = (char) getch( );
 +  if (c != 0)
 +cout << "That is ASCII value: " << (int) c << endl;
 +  else
 +  {   // Process one of the special keys:
 +c = (char) getch( );
 +switch (c)
 +{
 +    case KEY_HOME:    cout << "Home key."   << endl; break;
 +    case KEY_UP:cout << "Up key."     << endl; break;
 +    case KEY_PGUP:    cout << "PgUp key."   << endl; break;
 +    case KEY_LEFT:    cout << "Left key."   << endl; break;
 +    case KEY_CENTER:  cout << "Center key." << endl; break;
 +    case KEY_RIGHT:   cout << "Right key."  << endl; break;
 +    case KEY_END:     cout << "End key."    << endl; break;
 +    case KEY_DOWN:    cout << "Down key."   << endl; break;
 +    case KEY_PGDN:    cout << "PgDn key."   << endl; break;
 +    case KEY_INSERT:  cout << "Insert key." << endl; break;
 +    case KEY_DELETE:  cout << "Delete key." << endl; break;
 +    case KEY_F1:cout << "F1 key."     << endl; break;
 +    case KEY_F2:cout << "F2 key."     << endl; break;
 +    case KEY_F3:cout << "F3 key."     << endl; break;
 +    case KEY_F4:cout << "F4 key."     << endl; break;
 +    case KEY_F5:cout << "F5 key."     << endl; break;
 +    case KEY_F6:cout << "F6 key."     << endl; break;
 +    case KEY_F7:cout << "F7 key."     << endl; break;
 +    case KEY_F8:cout << "F8 key."     << endl; break;
 +    case KEY_F9:cout << "F9 key."     << endl; break;
 +    default: cout << "Unknown extended key." << endl;
 +}
 +  }
 +    }   while ((c != 'x') && (c != 'X'));
 +
 +    closegraph( );
 +}
 +
 +void outintxy(int x, int y, int value)
 +{
 +   char digit_string[20];
 +   sprintf(digit_string, "%d", value);
 +   outtextxy(x, y, digit_string);
 +}
 +</code>
 +
 +
 +==== See also ====
 +[[kbhit]]
 +
 +
 +===== output of getch example ===== 
 +
 +    no output of example at the moment
 +    do not hesitate and add it...  
 +
 +
  

on the occasion of the current invasion of Russia in Ukraine

Russian Stop this War

Impressum Datenschutz