Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Прерывания в Си++

6.9K
17 марта 2011 года
fen1xxx
63 / / 04.11.2010
Каким образом можно вызвать функцию из цикла во время его выполнения нажатием клавиши? Я слышал что это делается с помощью прерываний.
Если не сложно, напишите пожалуйста пример.

Вот пример цикла:

Код:
void func(); // функция которую нужно вызвать при нажатии клавиши во время выполнения цикла
set_cur_pos(int,int); // устанавливает позицию курсора в нужную координату
void main()
{
     for(int i=0; i<N; i++)
     {
           system("cls");
           set_cur_pos(i,5);
           printf("@");
     }
}
41K
17 марта 2011 года
kisssko
108 / / 28.10.2010
Цитата: fen1xxx
Каким образом можно вызвать функцию из цикла во время его выполнения нажатием клавиши? Я слышал что это делается с помощью прерываний.
Если не сложно, напишите пожалуйста пример.



А для какой платформы?
Вот примерно так для винды:

Код:
#include <windows.h>
DWORD numOfEvents=0;
INPUT_RECORD evInp;
void func(); // функция которую нужно вызвать при нажатии клавиши во время выполнения цикла
set_cur_pos(int,int); // устанавливает позицию курсора в нужную координату
void main()
{
     for(int i=0; i<N; i++)
     {
           system("cls");
           set_cur_pos(i,5);
           printf("@");
           GetNumberOfConsoleInputEvents(GetStdHandle(STD_INPUT_HANDLE), &numOfEvents);
           if(numOfEvents>0)
            {
             PeekConsoleInput(GetStdHandle(STD_INPUT_HANDLE),
                                       &evInp, 1, &numOfEvents);
             if(evInp.EventType==KEY_EVENT) {func();}
             else {ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),
                                               &evInp, 1, &numOfEvents)}
            }
     }
}


Прерывания в чистом виде не выйдет сделать. Можно только прерывание по Ctrl+C сделать.
6.9K
17 марта 2011 года
fen1xxx
63 / / 04.11.2010
я хотел текстовую змейку написать. для этого нужно стрелочками направление движения изменять. Это возможно?
41K
18 марта 2011 года
kisssko
108 / / 28.10.2010
Цитата: fen1xxx
я хотел текстовую змейку написать. для этого нужно стрелочками направление движения изменять. Это возможно?



В любом случае возможно. Под какую ОС пишешь это дело?

6.9K
18 марта 2011 года
fen1xxx
63 / / 04.11.2010
Под Windows.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог