![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Учу по-немногу stl.
Рассматривал пример:
И встал такой вопрос: а как ограничить ввод? Допустим до символа $ или конца строки. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
В общем случае - никак т.к. string считывается до первого пробельного символа, будь то пробле или табуляция или конец строки или ещё что-то... Если нужно считывать строки, разделённые определённым символом и оканчивающиеся другим определённым символом, то можно написать свой итератор, который будет делать то, что тебе нужно и использовать его можно будет так же как istream_iterator... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
archimed7592, ну допустим, если пару раз нажать ctrl+z и enter - то программа завершиться. Т.е. завершиться ввод.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Rickert, ctrl+z это указание об окончании потока. А вот чтобы свой какой-то символ использовать - нужно писать свой итератор.
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Xenon, а почему тогда ctrl+z срабатывает при каждом запуске в разном кол-ве? То один раз надо, то 5.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Rickert, почему это? Сначала жмешь enter, затем ctrl+z, затем еще раз enter - вот и завершился ввод
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Твоя правда
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Feniksa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
Сама функция copy в STL обьявленна вот так:
Мы можем просто написать свой copy, который будет прекращать копировать в случае нахождения в последовательности какого то символа. Если не получиться у тебя, маякни, помогу реализовать (хотя оставлю в качестве домашнего задания). Желаю удачи!!! |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Можно тогда написать:
И предикат, но по-моему это не лучший выход. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |