![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Как можно считать из cin не задерживая программу, если ничего не введено?
Можно ли как-то проверить, есть ли в cin символы или нет? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
cin ничего не знает о потоке, к которому он подсоединен. И istream тоже не в курсе, как обращаться с консолью. Так что языковых средств нет, только средства ОС
|
|||
|
||||
Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Понял. Но, по идее, вполне могла бы существовать функция, которая бы проверяла, есть ли в потоке ещё хотя бы один символ, не читая его. Непонятно, чем такая функция будет непереносимой?
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Для этого нужна функция ОС, которая бы вернула количество символов, ожидающих чтения в потоке. Такие функции (в ОС) есть, но нет в стандартных библиотеках С/С++. Кроме того, потоки часто буферизуются на уровне ОС, т.е. пока пользователь не нажмет Enter в терминале, в поток ничего не запишется, что бы он (пользователь) не наколотил в том же терминале до этого момента. Это поведение так же управляется функциями ОС. Есть библиотечные обвертки вокруг этого всего (ncurses и наверное тот же boost) |
|||
|
||||
andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
в STL нет такого, да и в стандарте тоже, так как это API системы.
я для венды такой костыль пользую:
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |