|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2012, 18:29 | #1 |
Регистрация: 03.06.2012
Сообщений: 5
|
Ввод без задержек
Интересует такой вопрос: можно ли осуществлять ввод через стандартные потоки (средствами stdio или iostream) без задержек? То есть, когда встречается команда чтения строки из потока (будь то getline или getchar или fgets или cin >>), работа всей проги замирает, даже если в потоке-то ничего и не было. Можно ли отслеживать, когда нет ничего в потоке и продолжать работу дальше? Спасибо.
|
03.06.2012, 20:26 | #2 |
Пользователь
Регистрация: 21.07.2008
Сообщений: 40
|
В общем случае для этого используется два потока выполнения - в одном потоке программа считывает пользовательский ввод, а в другом в это время исполняется основной алгоритм.
|
03.06.2012, 21:15 | #3 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2neurocore
Цитата:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
|
03.06.2012, 22:43 | #4 |
Регистрация: 03.06.2012
Сообщений: 5
|
Спасибо тебе, добрый pproger, завтра читну) А то уже с месяце с три никто ничё не знает, наглухо. А ведь как-то же делают..)
|
04.06.2012, 19:16 | #5 |
Регистрация: 03.06.2012
Сообщений: 5
|
Неожиданно, но спасла функция kbhit(). И никаких не надо потоков создавать и мультиплексировать
|
04.06.2012, 19:19 | #6 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2neurocore
ты спрашивал глобально про потоки, а не про буфер клавиатуры)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
04.06.2012, 19:35 | #7 |
Регистрация: 03.06.2012
Сообщений: 5
|
Ан-нет, тут я неправ, думал сработает, когда стандартный поток ввода перехвачен. Не работает..
Зы: а вообще написать для cin'а нужный метод - посильная задача? Последний раз редактировалось neurocore; 04.06.2012 в 19:41. |
04.06.2012, 19:44 | #8 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2neurocore
что значит для cin? cin - это объект класса istream. наследуешься и пишешь что хочешь. пс. с селектом я поторопился, в винде (если ты под нее пишешь) он работает только с сокетами
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
04.06.2012, 19:55 | #9 |
Регистрация: 03.06.2012
Сообщений: 5
|
Да, конечно, для istream) Пишу в винде, решения для винды было бы достаточно. Да, я почитал про селект - везде линукс..) Или может проще перекопать исходники например fgets, getc, подправить малость?)
Кажется, нашёл) stdin->_cnt - хранит число символов в потоке) Последний раз редактировалось neurocore; 04.06.2012 в 20:24. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод символа без эха | Ратмир | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 19.11.2010 20:25 |
Динамический ввод массива (без ввода размера) | Buddy_Guy | Общие вопросы C/C++ | 8 | 10.10.2010 22:22 |
Ввод с клавиатуры без остановки программы | ActioNs | Общие вопросы C/C++ | 1 | 25.12.2008 04:40 |
Ввод даты без разделителей (311007) | avtor101 | Microsoft Office Excel | 1 | 31.10.2007 19:57 |