Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 27.01.2016
Сообщений: 3
1

Обработка забоя в консоли

17.11.2016, 13:46. Показов 1545. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вот есть метод, который пускает в консоль только числа и '-'

Но в консоли на запрос можно вводить число примера 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
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.11.2016, 13:46
Ответы с готовыми решениями:

Коды клавиш и обработка событий клавиатуры в консоли
Многие часто спрашивают один и тот же вопрос по поводу обработки событий нажатия клавиш в консоли....

Обработка события нажатия клавиши мыши в консоли
Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный исходник в консольном...

Как происходит ввод и обработка символов из консоли?
Приветствую, не могли бы вы мне подсказать на счет одной вещи. В книге Страуструпа есть реализация...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор...

1
Одессит
243 / 88 / 44
Регистрация: 30.12.2013
Сообщений: 316
Записей в блоге: 2
17.11.2016, 13:47 2
Лучший ответ Сообщение было отмечено beem как решение

Решение

Можно воспользоваться функцией getch() Она принимает из консоли символы, но не выводит их на экран.
Написать что-то типа этого:
C++
1
2
3
4
5
6
7
char ch;
while(ch != 'q')
{
  ch = getch();
  if(ch != '-')
    cout << ch;
}
В самом цикле уже обрабатывать введённые символы, следить за их положением ну и т.п.
0
17.11.2016, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2016, 13:47
Помогаю со студенческими работами здесь

Реализация кроссфплатформенности консоли, разрешение консоли
Можно ли как-то реализовать просчёт количества пикселей экрана? Просто есть вот такая программа,...

считывание с консоли ( не с клавы, а именно с консоли)
нужно написать функцию которая возвращает string в котором написано 500 символов которые были...

Распознать символ забоя
Доброго всем времени суток, уважаемы епрограммисты! Вот решил освоить С по книге Кернигана и...

Обработка закрытия консоли
В моём случае неприемлемо насильственное завершение приложения, поэтому мне необходимо обрабатывать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru