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

Ограничить по времени ввод данных с клавиатуры - C++

Восстановить пароль Регистрация
 
Gh0sTG0
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 55
22.01.2016, 18:23     Ограничить по времени ввод данных с клавиатуры #1
Пробую сделать на c++ простенькую консольную викторину. В целом все сделал, интересует вот такой вопрос: как можно сделать чтобы викторина давала определенное время для ответа? Т.е. чтобы:
1) программа выводит вопрос и включает таймер
2) появляется возможность ввести что то с клавиатуры
3) если за некоторое время с клавиатуры ничего не было введено, либо был введен неверный текст(возможно несколько вариантов верного, к примеру с большой или маленькой буквы начинающееся, все остальное неверно), программа закрывает ввод и продолжает выполнение. Не прошу готовых рецептов, лучше в каком направлении поискать? Как это вообще называется?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 18:23     Ограничить по времени ввод данных с клавиатуры
Посмотрите здесь:

C++ ввод с клавиатуры данных в массив
Ввод данных с клавиатуры. char C++
C++ Ввод данных с клавиатуры
Ввод с клавиатуры данных в массив C++
C++ Ввод данных с клавиатуры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kuza84
-4 / 23 / 4
Регистрация: 25.04.2013
Сообщений: 195
22.01.2016, 20:25     Ограничить по времени ввод данных с клавиатуры #2
как вариант работа с системным временем, выполнять некий цикл с условием выхода из которого ответ или время истекло
Gh0sTG0
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 55
22.01.2016, 21:12  [ТС]     Ограничить по времени ввод данных с клавиатуры #3
Попробую, по результатам напишу.

Добавлено через 46 минут
А немного поподробнее можно? Чего как и куда?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
23.01.2016, 12:49     Ограничить по времени ввод данных с клавиатуры #4
В объёма стандартных C и C++ нету таких возможностей, т.к. весь библиотечный набор функций ввода-вывода (грубо говоря, scanf или cin) работает с АБСТРАКТНЫМИ ПОТОКАМИ ввода-вывода, а вовсе не с терминалом. В твоём случае нужна библиотека, которая работает именно с терминалом, как с конкретным устройством (а не абстрактным). Наверняка такие библиотеки есть, и может быть даже получится сделать переносимую программу (чтобы одинаково работало, например, под windows и linux) за счёт того, что всё различие между разными терминалами библиотека содержит внутри себя

Что-то типа того https://ru.wikipedia.org/wiki/Ncurses, но я не уверен, что в Ncurses есть работа с вводом. Почитай описание, может есть

Добавлено через 4 минуты
http://invisible-island.net/ncurses/...OWTO.html#KEYS

Судя по всему, там нельзя опросить состояние клавиатуры. Т.е. если вызвал функцию чтения, то из неё не выйдешь, пока не будет нажата какая-нибудь кнопка. Тебе нужен вариант, который умеет опрашивать состояние клавиатуры (было нажатие, или нет)

Добавлено через 5 минут
Вот есть под винду
https://msdn.microsoft.com/ru-ru/library/58w7c94c.aspx
Yandex
Объявления
23.01.2016, 12:49     Ограничить по времени ввод данных с клавиатуры
Ответ Создать тему

Метки
c++, ввод, таймер
Опции темы

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