Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по С++  (Прочитано 12391 раз)
0 Пользователей и 8 Гостей смотрят эту тему.
Дей-Лак
Новенький

ru
Offline Offline

« : 23-08-2010 19:27 » 

Возник вопрос: как сделать так, чтобы пользователю программы можно было сделать какое-то действие только в течениЕ какого-то времени. То есть, течет таймер, по истечении которого это действие уже сделать нельзя, и программа продолжает работу.
Можете помочь, пожалуйста?
« Последнее редактирование: 23-08-2010 19:58 от Sel » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 23-08-2010 19:35 » 

да легко. Только надо знать - какое действие ?
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 23-08-2010 19:36 » 

один из вариантов: показываем кнопку, заводим таймер на 10 секунд. По срабатывании таймера гасим кнопку
Записан

Дей-Лак
Новенький

ru
Offline Offline

« Ответ #3 : 23-08-2010 19:38 » 

Там  не кнопку. Там надо getch сделать
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 24-08-2010 05:24 » 

Там  не кнопку. Там надо getch сделать

Ну вот ты сам всё знаешь Улыбаюсь

строго говоря, вопрос вообще не о чём, ничего конкретного
где?
1. код
2. указание на проблему
3. среда разработки
4. ОС
Записан

Странно всё это....
Дей-Лак
Новенький

ru
Offline Offline

« Ответ #5 : 24-08-2010 06:47 » 

Ну вот ты сам всё знаешь Улыбаюсь
Да я не про то что знаю. Я про то что действие которое должно быть выполнено в течение какого-то времени-это getch().

1. Код тут по-моему не причем.
2. Проблему я указал. Не получается сделать так чтоб действие можно было выполнить только в какой-то промежуток времени.
3. Borland C++
4. Не знаю зачем это, но Windows Vista.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #6 : 24-08-2010 09:01 » 

Дей-Лак, Код у тебя просили, чтобы лучше понять в ЧЁМ именно у тебя проблема. Так гораздо быстрей. А остальное...

В чём проблема-то? getch() насколько я помню, ждёт сама ввода, те повлиять на это ты не сможешь. Значит надо запустить цикл, в котором ожидать нажатие кнопки и проверять время. Если произошло первое событие, ты считываешь введённый символ и обрабатываешь его, если второе - ошибка.

В паскале была для этого замечательная ф-я KeyPressed, если у Borland C++ нет аналога, то её очень легко "сделать" самому, вот тут есть код:
http://www.merlyn.demon.co.uk/pas-extn.htm

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 24-08-2010 09:11 » 

Заставить getch() не дожидаться ввода не сложно: нужно получить номер файла потока stdin и перевести его в неблокируемый режим.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Дей-Лак
Новенький

ru
Offline Offline

« Ответ #8 : 05-09-2010 20:24 » 

Спасибо тем кто помог. Теперь есть еще одна проблема. Я создал массив строк и указатель на него. Я передаю указатель в функцию которая потом с помощью функции outtextxy() должна выводить эти строки. Но outtextxy() выводит все элементы массива которые следуют за текущим значением указателя.  Это можно как-то исправить?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 05-09-2010 20:29 » new

Наверное, можно Улыбаюсь Покажи код вывода всех элементов массива, без него сложно что-то сказать, разве что предположить, что с циклом напортачено. И что значит "текущее значение указателя" - указатель на (скажем) первый элемент, передаваемый в функцию?
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines