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

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

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

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

19.11.2014, 20:03. Просмотров 273. Ответов 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
Посмотрите здесь:

Нужно закончить ввод последовательности чисел нажатием клавиши 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++
Добрый день. У меня есть массив, мне его нужно заполнить числами с клавиатуры. Но этот массив должен заполняться в строчку, а не в...

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

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

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

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

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

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

Как сделать ввод без enter? - C++
Есть готовый код. нужно чтобы на ввод маркера стояло ограничение. Идея:чтобы при вводе, сразу перепрыгивала на ввод искомого символа....


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

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

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