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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
animator-kun
Сообщений: n/a
#1

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

19.11.2014, 20:03. Просмотров 281. Ответов 0
Метки нет (Все метки)

добрый день, помогите советом.

для лабораторной работы требуется написать приложение - калькулятор, я использовал бесконечный цикл 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 - C++
for(int i=0;pass;i++) cin&gt;&gt;pass;-перестает вводить символы после третьего. весь код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Нужно закончить ввод последовательности чисел нажатием клавиши ENTER - C++
В общем есть цикл for, в нем мы вводим последовательно числа. char a; int i; For (i=0; i&lt;9; i++) { if (cin.getline(a, 9,...

Неработает проверка на ввод enter - C++
По логке кода, при нажатии на ентер цыкл должен оборватся, но этого не происходит, почему? char login; char pass; char fio; ...

Нажатие клавиши без ожидания Enter - C++
Как в c++ сделать так, что бы при нажатии какой-то клавиши, программа(консоль) сразу выполняла действие , а не ждала пока введут этот...

Ожидание клавиши Enter - getch не работает - C++
Друзья привет! Спасибо всем, кто откликнется! Мелкий вопрос, но честно, уже голова кругом идет! Второй день бьюсь над совершенно...

Переназначить событие клавиши ENTER в консоли - C++
Добрый день. У меня есть массив, мне его нужно заполнить числами с клавиатуры. Но этот массив должен заполняться в строчку, а не в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 20:03
Привет! Вот еще темы с ответами:

Подскажите аски код клавиши ENTER - C++
Хотел написать программу, которая вводит строки из файла и выводит их потом построчно, но для вывода каждой новой строки нужно нажать...

Обработка нажатия клавиши без подтвержения enter - C++
Здравствуйте, уважаемые программисты. Подскажите в чем проблема. Вывожу рисунок посредством команды dos в языке turbo c. Необходимо...

обработка клавиши enter для textbox'a на форме - C++
пытаюсь сделать обработку кнопки enter, после нажатия которой будут происходить соответствующие преобразования с вводимой...

Убрать ожидание нажатия клавиши Enter при выводе - C++
Здравствуйте! Подскажите пожалуйста, вот у меня сейчас вывод есть как бы, но он выводит через ентер каждый товар, а мне надо чтоб сразу все...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru