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

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

Войти
Регистрация
Восстановить пароль
 
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
#1

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

26.09.2010, 03:24. Просмотров 772. Ответов 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*/ ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 03:24     Автоматический выход из цикла.
Посмотрите здесь:

Выход из цикла C++
Выход из цикла C++
Преждевременный выход из цикла C++
C++ Выход за пределы цикла
C++ Выход из двойного цикла
Выход из вложенного цикла C++
Принудительный выход из цикла C++
Выход из цикла C++
Автоматический вход-выход в windows C++
C++ Преждевременный выход из цикла
C++ Выход из цикла из консоли
С++ Выход из цикла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.09.2010, 06:52     Автоматический выход из цикла. #2
под линем select() для stdin'а
Kastaneda
Форумчанин
Эксперт С++
4259 / 2791 / 219
Регистрация: 12.12.2009
Сообщений: 7,119
Записей в блоге: 1
Завершенные тесты: 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); //и выходим))
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 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 минут
обычными средствами я так понимаю не получится этого сделать, может тогда использовать потоки/процессы как нибудь?
Yandex
Объявления
26.09.2010, 23:27     Автоматический выход из цикла.
Ответ Создать тему
Опции темы

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