Пишу на С++. И тут появляется задание(тренировка СПБГУ#22 ) G,а в нём нужно вводить (я использую cin) неизвестное количество чисел,вот я и не знаю как отследить,что ввод был закончен.С файлом всё просто,а тут... Помогите
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 156 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Пишу на С++. И тут появляется задание(тренировка СПБГУ#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).