How ungetch() Works with getch() and getche()

ID: Q41198

5.10 6.00 6.00a 6.00ax 7.00 | 5.10 6.00 6.00a | 1.00 1.50

MS-DOS                      | OS/2            | WINDOWS
kbprg

The information in this article applies to:

SUMMARY

The Microsoft C run-time function ungetch() pushes back a character to be read in by the next call to getch() or getche().

The character is pushed back to a internal buffer, not the keyboard buffer. The function getch() or getche() checks the internal buffer before it calls the DOS interrupt function to read input from the keyboard buffer. If the internal buffer is not empty, it returns the value in the buffer without calling the Interrupt 21H function.

MORE INFORMATION

Pushing a character back to the keyboard buffer can be done on some machines by calling BIOS keyboard service, Interrupt 16H function 05H with scan code in the register CH and the character's ASCII code in the register CL. Note that this BIOS function may not be supported on all machines. Be sure to check the BIOS documentation for your machine before you try to use this function.

Additional reference words: kbinf 5.00 5.10 6.00 6.00a 6.00ax 7.00 1.00 1.50 KBCategory: kbprg KBSubcategory: CRTIss Keywords : kb16bitonly

Last Reviewed: July 18, 1997