Форум программистов, компьютерный форум CyberForum.ru

Проверка на ввод клавиши enter - C++

Восстановить пароль Регистрация
 
animator-kun
Сообщений: n/a
19.11.2014, 20:03     Проверка на ввод клавиши enter #1
добрый день, помогите советом.

для лабораторной работы требуется написать приложение - калькулятор, я использовал бесконечный цикл while для повторного использования калькулятора, однако хотелось бы улучшить один момент, после вывода на экран надписи "To continue, press enter , to exit press q" если нажимать enter, то приходится нажимать эту клавишу несколько раз для перехода на следующую итерацию, хотелось бы ввести проверну на нажатие клавиши enter, как это можно реализовать?

вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// лаба_2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
// для того чтобы учесть переполнение типа int была подключена библиотека limits.h
#include "limits.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
int ar1, ar2, a;
char sig;
// чтобы приложение не закрывалось сразу же после выполнения выражения, был введен бесконечный цикл while c условием выхода при нажатии клавиши q
while(true)
{
 
printf("Enter expression \n");
// оператор flushall() очищает буфер, из которого берет данные scanf
flushall();
scanf("%d%c%d", &ar1, &sig, &ar2);
// условный оператор для учета переполнения типов
if ((ar1>=SHRT_MAX)||(ar1<=SHRT_MIN)|| (ar2>=SHRT_MAX)||(ar2<=SHRT_MIN))
{
printf("You have gone beyond a value of type int, please enter the arguments are not outside the range [в€’2,147,483,648 ; +2,147,483,647]; press enter to continie \n");
flushall();
getchar();
// system("cls"); очищает экран перед следующей итерацией цикла
system("cls"); 
continue;
}
// проверка на правильность ввода знака
if ((sig!='+')&&(sig!='-')&&(sig!='*')&&(sig!='/'))
{
printf("you entered an incorrect character please one of the following characters: +, - , *, /; press enter to continie \n");
flushall();
getchar();
system("cls"); 
continue;
}
else
{
// если знак введен правильно, то в игру вступает оператор switch case
switch(sig)
{
case '+':
a=ar1+ar2;
break;
case '-':
a=ar1-ar2;
break;
case '*':
a=ar1*ar2;
break;
case '/':
{
if (ar2==0) 
{
printf("deviding by zero is not allowed in this world");
getchar();
continue;
}
 
a=ar1/ar2;
}
break;
}
}
// печатаем ответ
printf("=%d \n", a);
// в случае если пользователь уже все, при вводе q с клавиатуры цикл разрывается и программа завершает работу
printf("To continue, press enter , to exit press q \n");
flushall();
scanf("%c", &sig);
if(sig=='q') break;
 
flushall();
getchar();
system("cls"); 
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 20:03     Проверка на ввод клавиши enter
Посмотрите здесь:

C++ Обработка нажатия клавиши без подтвержения enter
обработка клавиши enter для textbox'a на форме C++
C++ Подскажите аски код клавиши ENTER
Переназначить событие клавиши ENTER в консоли C++
C++ Нажатие клавиши без ожидания Enter
Убрать ожидание нажатия клавиши Enter при выводе C++
Неработает проверка на ввод enter C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru