Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Коды клавиш */
- #define ESCAPE (27)
- #define BACKSPACE (8)
- #define ENTER (13)
- #define BUFFER_LENGTH (256) /* длина буфера ввода */
- static char __buffer[BUFFER_LENGTH]; /* буфер ввода */
- /* Функция для ограничения ввода */
- unsigned input(const char* const use, const char* const printAfter)
- {
- int _tmp;
- unsigned i = 0;
- if (!use)
- return 0;
- while (i < BUFFER_LENGTH)
- {
- _tmp = getch();
- if (_tmp == ENTER)
- {
- __buffer[i] = '\0';
- break;
- }
- else if (_tmp == BACKSPACE && i > 0)
- {
- printf("\b \b");
- --i;
- }
- else if (_tmp == ESCAPE)
- {
- exit(0);
- }
- else if (_tmp == 0) /* Если нажата специальная клавиша */
- {
- continue;
- }
- else if (strchr(use, _tmp))
- {
- __buffer[i++] = _tmp;
- putchar(_tmp);
- }
- }
- if (printAfter)
- {
- printf(printAfter);
- }
- return i;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement