![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.06.2009
Сообщений: 354
|
![]() Код:
![]() |
![]() |
![]() |
![]() |
#2 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() Цитата:
В случае ошибки(например при вводе букв вместо цифр) cin вернёт false. while(!(cin >> golf[i])) - продолжать цикл, пока cin не вернёт true(то есть выполнится без ошибок. cin.clear() - когда возникает ошибка при считывании, то выставляется флаг ошибки. Вызов метода clear очищает этот флаг, дабы можно было дальше нормально работать с потоком. while(cin.get() != '\n') continue; Этот цикл нужен, чтобы вытащить из входного потока те неправильные символы, которые ввёл пользователь(ведь, если cin вернула false(произошла ошибка), то все введённые символы так и остались во входном потоке и на следующий итерации будут опять считываться они же, что приведёт к бесконечному числу ошибочного чтения cin-ом и, как следствие, к бесконечному циклу. В этом цикле мы считываем посимвольно всё, что есть во входном потоке до '\n'(перевод строки) continue в данном случае возвращает во внутренний while. По сути можно было бы просто опустить этот оператор, а записать так: while(cin.get() != '\n'); так как никаких полезных действий он не выполняет в данном случае. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
объясните цикл | stenl1 | Общие вопросы C/C++ | 5 | 30.06.2009 17:06 |
cin??? | Paul_AG | Общие вопросы C/C++ | 4 | 24.04.2009 14:02 |
Не опознается cin | Stellvertreter | Общие вопросы C/C++ | 5 | 14.10.2008 08:10 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |