|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2014, 12:10 | #1 |
Студент
Пользователь
Регистрация: 11.06.2010
Сообщений: 39
|
Только цифры в cin
Доброго времени суток!
Написал программу, которая считывает и выводит элементы массива... Всё просто, но на самом деле, мне бы чуть больше понимания, как работает кусок кода (программа рабочая). Код: Код:
[code]for (int i=0; i<5; i++) { cout<<"Ar["<<i+1<<"]: "; cin>>value; while (!cin) { cin.clear (); while (cin.get ()!= '\n') continue; cout<<"Enter again A["<<i+1<<"]: "; cin>>value; } Ar[i] = value; }[/QUOTE] Проверьте пожалуйста, ход рассуждений (только это, переписывать ничего не надо в коде!): 1. Ввод значения во временную переменную "value". 2. Если введённое значение не подходит, то в очереди потока в cin, выставляется флаг, имеющий значение "ложь", что даёт запуск цикла "while". (истина = не-ложь) 3. Цикл "while (!cin)" операторами в теле цикла: cin.clear() очищает очередь символов , а while (cin.get()) выполняет сброс символа новой строки столько раз, пока они там есть. Continue выполняет новую и новую итерацию, пока там ещё есть символы новой строки. Сам cin.clear () не может выполнить очистку на символы новой строки. 4. Производится считывание временной переменной "value", если оно истинно, т.е. введено корректное значение (число), то флаг в условии цикла while (!cin) равен "истина". 5. Число присваивается элементу массива. При наличии корректного ввода, происходит выполнение цикла for (), без циклов while()
"...Попытайся ухватить звёзды с небес, чем переживай, что до них не дотянуться..."
Последний раз редактировалось Stilet; 22.06.2014 в 13:15. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод - сделать так, чтобы в Edit можно было вводить только цифры, или на оборот, только буквы | BastAngel | Общие вопросы Delphi | 7 | 27.04.2012 01:15 |
iostream считать из файла ТОЛЬКО цифры | Egyptorium | Visual C++ | 2 | 06.01.2012 17:41 |
Как сделать, чтобы было только нажати 3 цифры | XxXGhosTXxX | Общие вопросы C/C++ | 6 | 20.03.2011 15:31 |
Как в Edit вводить только цифры | subsonic | Общие вопросы Delphi | 5 | 29.03.2010 23:39 |