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

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

Войти
Регистрация
Восстановить пароль
 
xAndeRx
3 / 3 / 0
Регистрация: 25.10.2012
Сообщений: 216
#1

Прерывание цикла, через клавишу Esc - C++

21.11.2014, 18:26. Просмотров 283. Ответов 4
Метки нет (Все метки)

Мне нужно в прервать цикл при нажатии клавиши Esc.
Делаю через getch(). Все работает, но есть одна проблема, в каждом прогоне цикла нужно 2 раза вводить один и тот же элемент массива, чтобы в 1-ый раз проверялся getch, а во второй это элемент вносился в массив.
Как убрать это? Но при этом сохранить проверку на Esc.

Код:
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n;
    cout << "Введите размерность массива: ";
    cin >> n;
    float mas[n];
    int i=0,k=0;
    int positive,kratnie;
    cout << "Вводите элементы массива." << endl;
    int a;
    do
    {
        cin >> mas[i];
        if (mas[i]>0) //Проверка на положительность
            positive++;
 
        if (mas[i]<50)
            kratnie++;
 
        if (mas[i]==-100)
            break;
        i++;
        k++;
    }
    while ((a=getch())!=27);
    if (positive>5)
        cout << "Первое условие ложное, положительных цифр больше чем 5." << endl;
    else if (positive<5)
        cout << "Первое условие правдивое, положительных цифр не больше чем 5." << endl;
 
    if (kratnie % 4 == 0)
        cout << "Второе условие правдивое, количество элементов, которые не больше 50,55, кратно четырем.";
    else if (kratnie % 4 != 0)
        cout << "Второе условие ложное, количество элементов, которые не больше 50,55, не кратно четырем.";
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 18:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прерывание цикла, через клавишу Esc (C++):

Прерывание программы по ESC C++ - C++
доброй ночи Добрался до такой вот темы Пытаюсь реализовать перехват нажатия клавиши ESC и SPACE в консольном режиме Но программа не...

Как в switch обработать клавишу Esc? - C++
#include &lt;iostream&gt; using namespace std; class tollBooth { private: unsigned int cars; double amount; public: ...

Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc. - C++
Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc.

Прерывание цикла! - C++
каким образом можно прервать while путем ввода какого нибудь символа, чтобы не нужно было при каждом проходе тела цикла вводить этот...

Прерывание цикла по условию - C++
Ребят,помогите пожалуйста,мне нужно,например если сработал первый if, то следующие не срабатывали в цикле,помогите пожалуйста void...

Прерывание цикла и выполнение его вручную - C++
Доброго времени суток! Есть следующий код { cout &lt;&lt; &quot;start&quot; &lt;&lt; endl; cout &lt;&lt; &quot;enter signalWaitTime&quot; &lt;&lt; endl; ...

4
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,600
Записей в блоге: 3
Завершенные тесты: 1
21.11.2014, 18:29 #2
GetAsyncKeyState в помощь
0
xAndeRx
3 / 3 / 0
Регистрация: 25.10.2012
Сообщений: 216
21.11.2014, 19:11  [ТС] #3
Можно подробнее? Погуглил и до конца не понял, что именно дает функция GetAsyncKeyState и как её применить к моему случаю.
0
nmcf
5324 / 4644 / 1553
Регистрация: 14.04.2014
Сообщений: 18,479
21.11.2014, 19:47 #4
Она показывает нажата ли клавиша в момент обращения.
0
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,600
Записей в блоге: 3
Завершенные тесты: 1
22.11.2014, 07:23 #5
Стрелки клавиатуры в консоли
С Esc аналогично
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 07:23
Привет! Вот еще темы с ответами:

Прерывание бесконечного цикла с возвратом значения нажатой клавиши в main() - C++
Вкратце, в функции main() есть некий объект класса - scene, также есть бесконечно работающий цикл while(1), в котором вызывается...

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

Числовой ряд через 3 цикла - C++
Доброго времени суток, помогите пожалуйста с заданием. Необходимо решить через 3 цикла: for, while, do while. Зарание спасибо за помощь))

Имитация цикла for через рекурсию - C++
Имитация цикла for через рекурсию


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
22.11.2014, 07:23
Ответ Создать тему
Опции темы

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