Ну нет.Это не тот случай, когда «getline()
предложит пользователю ввести данные».Очевидно, что оператор ignore
приходит после getline()
one.
В результате получается, что оператор ignore()
просто блокируется до тех пор, пока не выполнит свою задачу, т.е. сожрет 100 символов илиНовая строка, в зависимости от того, что наступит раньше (но не забывайте о буферизации ввода).
В общем, хотя и не напрямую, совет: не смешивайте извлечение токенов (>>
) и getline()
, точноэта проблема, касающаяся новых строк.Намного лучше придерживаться одной вещи;желательно чтение строки, чтобы вы могли справиться с ошибками и повторить подсказку.Также учитывайте любую неконтролируемую операцию чтения (>>
, getline()
или istream::read()
) как программную ошибку;все они должны быть условными.