Пишу на С++. И тут появляется задание(тренировка СПБГУ#22 ) G,а в нём нужно вводить (я использую cin) неизвестное количество чисел,вот я и не знаю как отследить,что ввод был закончен.С файлом всё просто,а тут... Помогите
№ | Пользователь | Рейтинг |
---|---|---|
1 | jiangly | 3640 |
2 | Benq | 3593 |
3 | tourist | 3572 |
4 | orzdevinwang | 3561 |
5 | cnnfls_csy | 3539 |
6 | ecnerwala | 3534 |
7 | Radewoosh | 3532 |
8 | gyh20 | 3447 |
9 | Rebelz | 3409 |
10 | Geothermal | 3408 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | maomao90 | 173 |
2 | adamant | 164 |
3 | awoo | 162 |
4 | TheScrasse | 160 |
5 | nor | 159 |
6 | maroonrk | 156 |
7 | SecondThread | 154 |
8 | pajenegod | 147 |
9 | Um_nik | 145 |
9 | BledDest | 145 |
Пишу на С++. И тут появляется задание(тренировка СПБГУ#22 ) G,а в нём нужно вводить (я использую cin) неизвестное количество чисел,вот я и не знаю как отследить,что ввод был закончен.С файлом всё просто,а тут... Помогите
Название |
---|
UPD. Some info
как проверить что ввод закончен?
С файлом всё просто,а тут...
Можешь это место по-подробнее объяснить?
как я понял, топикстартеру с файлами проще потому что там EOF есть
BackendDeveloper имеет в виду, что тут EOF есть в точно таком же виде, как и в файлах.
В консоли это невозможно.
UPD: слишком поздно написал
UPD2: в консоли — имеется ввиду без файлов в codeblocks(или тому подобное) нажав на клавишу F9.
UPD3: Извините за неправильный ответ. Раньше мне всегда твердили что это невозможно. Слова беру назад и большое спасибо Avitella и andreyv. Узнал что-то новое)
В linux консоли есть комбинация клавиш CTRL + D. Так что все возможно :)
Ещё как возможно:
спасибо, долго искал
Если нужен построчный ввод неизвестного количества данных поможет такое:
да
еще же scanf-ом можно
int x; while (scanf("%d", &x) == 1){ //do smth }
Можно использовать итераторы:
В олимпиадах я такого не видел)
Моя не понимать. Вы тут объявили
eos
, но не инициализировали. Я правильно понимаю, что у него в стандартном конструкторе будет какая-то шняга, которая аналогична "бла-бла-бла" и позволяет понять, когда у нас конец ввода? Но тогда вопрос, в качестве так сказать инициализатораit
мы передалиcin
, а почему без инициализатора будет то, что нам нужно? Объясните, пожалуйста, подробнее, а то лень копаться в референсах/исходниках и чекать у себя на компе, будет ли работать ваш пример.UPD. Скомипилилось и отработало. Объясните, почему.
Вы понимаете правильно. Работает так потому что его так написали.
Цитата отсюда
A special value for this iterator exists: the end-of-stream; When an iterator is set to this value ... has been constructed using its default constructor (without associating it with any basic_istream object).