Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
#1

Автоматический выход из цикла. - C++

26.09.2010, 03:24. Просмотров 841. Ответов 3
Метки нет (Все метки)

имеется код:

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
int main()
{
    square s; //объект класса
    unsigned char ch;
 
     /*цикл 1*/
    while(true){
        Sleep(1000);
        s.erase(), s.move(down), s.draw(); //Автоматическое движение фигуры вниз
 
 
       /*цикл 2*/
        do {
            ch = getch();
            if (ch == 224){
                ch = getch();
                switch(ch){
                    case left:  s.erase(), s.move(left),  s.draw(); break;
                    case right: s.erase(), s.move(right), s.draw(); break;
                    case up:    s.erase(), s.move(up),    s.draw(); break;
                    case down:  s.erase(), s.move(down),  s.draw(); break;
                }
            }
        }
        while (ch != exit_tet); /*конец  цикл 2*/
 
    } /*конец  цикл 1*/
 
    return 0;
}
здесь, через каждую секунду, квадрат автоматически движется вниз по экрану, но при входе в /*цикл 2*/ программа все время ждет нажатия клавиши, что придумать чтобы по истечению например 2 сек. программа автоматически выходила из /*цикл 2*/ ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 03:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Автоматический выход из цикла. (C++):

Автоматический вход-выход в windows
Здравствуйте! Подскажите, как при определённом событии (таймер, автозагрузка)...

С++ Выход из цикла
Есть цикл, написанный в дополнительной функции. Нужно вывести сумму нескольких...

Выход из цикла
Ув. программисты я пишу крестики-нолики, но возникла некоторая проблема с...

Выход из цикла
Есть цикл. Он выполняется. Долго. Пока он выполняется я нажимаю Esc и он...

Выход из цикла
Доброго времени суток. Подскажите, пожалуйста как сделать выход из цикла при...

Выход за пределы цикла
Вообщем необходимо реализовать алгоритм по пунктам от 1 до 27 и в них есть...

3
accept
4833 / 3254 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
26.09.2010, 06:52 #2
под линем select() для stdin'а
0
Kastaneda
Jesus loves me
Эксперт С++
4759 / 2962 / 340
Регистрация: 12.12.2009
Сообщений: 7,520
Записей в блоге: 2
Завершенные тесты: 1
26.09.2010, 08:36 #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
что придумать чтобы по истечению например 2 сек. программа автоматически выходила из /*цикл 2*/ ?
При таком подходе цикл получается вообще не нужен) Конкретно для вашего кода можно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 /*цикл 2*/
        do {
            ch = getch();
            if (ch == 224){
                ch = getch();
                switch(ch){
                    case left:  s.erase(), s.move(left),  s.draw(); break;
                    case right: s.erase(), s.move(right), s.draw(); break;
                    case up:    s.erase(), s.move(up),    s.draw(); break;
                    case down:  s.erase(), s.move(down),  s.draw(); break;
                }
            }
        Sleep(2000);}//ждем 2 секунды
        while (false); //и выходим))
0
PointsEqual
ниначмуроФ
838 / 522 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
26.09.2010, 23:27  [ТС] #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/*цикл 2*/
 do {
 ch = getch();
 if (ch == 224){
 ch = getch();
 switch(ch){
 case left: s.erase(), s.move(left), s.draw(); break;
 case right: s.erase(), s.move(right), s.draw(); break;
 case up: s.erase(), s.move(up), s.draw(); break;
 case down: s.erase(), s.move(down), s.draw(); break;
 }
 }
 Sleep(2000);}//ждем 2 секунды
 while (false); //и выходим))
но таким способом фигура автоматически не движется, ( для этого и нужен был первый цикл1), и цикл 2 все равно ждет от пользователя ввод до тех пор пока он не нажмет клавишу, а нужно чтоб по истечению 2 секунд, если никакая кнопка не нажата то программа выходила из цикла 2

Добавлено через 32 секунды
Цитата Сообщение от accept Посмотреть сообщение
под линем select() для stdin'а
не, у меня win

Добавлено через 11 часов 49 минут
обычными средствами я так понимаю не получится этого сделать, может тогда использовать потоки/процессы как нибудь?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2010, 23:27
Привет! Вот еще темы с решениями:

Выход из цикла из консоли
В консольном приложении пользователь запускает цикл, выход из которого...

Принудительный выход из цикла
Вообщем надо при определенном условии завершать вложенный цикл, такой код будет...

Выход из двойного цикла
Как выйти при нажатии определенной кнопки из двойного цикла: #include<conio.h>...

Выход из цикла while знаком '|' ?
Всем привет, Страуструп дал задание выйти из цикла знаком '|'. Собственно сама...


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

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

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