Більшість програм виконують ввід інформації з клавіатури.
Ввід інформації в комп’ютер може бути здійснений на трьох рівнях: зверненням до
функцій MS-DOS; зверненням до функцій BIOS; фізичним доступом до апаратних засобів.
Ввід інформації на рівні MS-DOS дозволяє “пропустити”
клавіатурний ввід через інсталюючі драйвери, забезпечує відслідкування натиснення комбінації клавіш Ctrl-C
(Ctrl-Break), стандартну для MS-DOS обробку помилок. На цьому рівні працюють функції Turbo C для:
1)
вводу інформації з файлу stdin або через потік, або ж через
префікс 0 (див. 2.8);
2)
консольного вводу (getch(), getche() та ін., прототипи котрих приведені в
файлі <conio.h> (див. 7.3)).
Доступ до клавіатури на рівні BIOS дозволяє програмі відслідковувати натиснення всіх, а не тільки
символьних клавіш, виконувати управління апаратурою клавіатури і т.ін. Інтерфейсом Turbo C з BIOS є функція bioskey().
Безпосередній доступ до буферу клавіатури різко підвищує
продуктивність програми. В деяких випадках необхідна
імітація натиснення клавіш з записом кодів безпосередньо в буфер. При цьому
фізично натиснення клавіш не відбуваються. Так будуються багато демонстраційних
програм, які відкривають або закривають вікна меню, виконують необхідний вибір, показують роботу програми в “автоматичному” режимі і
т.д. На тому ж самому принципі імітації натиснення клавіш побудовані програми,
здатні переносити одним натисненням клавіші цілі шматки тексту із однієї
програми л любий текстовий редактор. Прикладом такої
програми є резидентна Help-система THELP.COM, що входить в Turbo C. В 7.5 приводиться ряд прикладів
функцій, котрі виконують безпосередній доступ до буферу клавіатури.
![]() |
![]() |
![]() |