0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 3
|
|
1 | |
Обработка забоя в консоли17.11.2016, 13:46. Показов 1545. Ответов 1
Метки нет (Все метки)
вот есть метод, который пускает в консоль только числа и '-'
Но в консоли на запрос можно вводить число примера 12-12, в выводе оно станет -1212, как сделать чтобы минус можно было ставить только в начале а не внутри? и ещё вопрос, как разрешить ввод точки, и только одной, для всего потока : 12.12 , а вот точку именно только внутри ? int GetInt() { int k, n = 0, flgS = 0, c = 0; while (1) { k = _getch(); if ((k == '-') && (flgS == 0)) { flgS = -1; _putch('-'); c++; } if ((k >= '0') && (k <= '9')) { printf("%c", k); n = n * 10 + k - '0'; c++; } if (k == 8) { _putch(8); _putch(' '); _putch(8); n = n / 10; c--; if (c == 0) flgS = 0; } if (k == 13) break; } if (flgS == -1) n = -n; return n; } Добавлено через 22 минуты Решение. int GetInt() { int first = 1; int sign = 1; int c = 0; int n = 0; while(1) { if (c == 0) first = sign = 1; int k = getch(); if (k == '-' && first) { first = 0; sign = -sign; putchar(k); c++; } else if (k == '+' && first) { putchar(k); first = 0; sign = sign; c++; } else if (k == 8 && c > 0) { putchar(8); putchar(' '); putchar(8); n /= 10; c--; } else if (k == 13) { break; } else { if (k >= '0' && k <= '9') { first = 0; n = n * 10 + k - '0'; putchar(k); c++; } } } return n * sign; } если кому надо будет
0
|
17.11.2016, 13:46 | |
Ответы с готовыми решениями:
1
Коды клавиш и обработка событий клавиатуры в консоли Обработка события нажатия клавиши мыши в консоли Как происходит ввод и обработка символов из консоли? Клавиши F1-F12 в консоли, и работа с мышкой в консоли |
Одессит
|
||||||
17.11.2016, 13:47 | 2 | |||||
Сообщение было отмечено beem как решение
Решение
Можно воспользоваться функцией getch() Она принимает из консоли символы, но не выводит их на экран.
Написать что-то типа этого:
0
|
17.11.2016, 13:47 | |
17.11.2016, 13:47 | |
Помогаю со студенческими работами здесь
2
Реализация кроссфплатформенности консоли, разрешение консоли считывание с консоли ( не с клавы, а именно с консоли) Распознать символ забоя Обработка закрытия консоли Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |