Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
#1

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync - C++

27.02.2014, 00:57. Просмотров 1979. Ответов 2
Метки нет (Все метки)

Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная "защита от дурака" на ввод. Не пойму предназначение
C++
1
cin.get() != '\n'
C++
1
 cin.clear()
C++
1
cin.sync()
Объясните, пожалуйста, ПОПУЛЯРНО.

C++
1
2
3
4
5
6
7
8
9
int i;
    cout<<"Enter int : ";
    while(!(cin>>i) || cin.get() != '\n') 
    {
        cout<<"IDIOT !! Enter again !\n";
        cin.clear(); // сбрасывает все биты потока, тоесть поток становится "хорошим"
        cin.sync();//Удалим данные из буффера
        cout<<"Enter int : ";
    }
Спасибо за понимание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 00:57     Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Посмотрите здесь:

cin.eof и cin.fail C++
C++ Не очищается поток после cin.clear()
C++ использование cin.get вместо cin
C++ Сброс состояния буфера cin.clear
C++ cin.get() и cin.clear()
C++ Пробел при вводе данных c применением cin
Cin.clear cin.ignore C++
Проверка ошибок при вводе (cin) C++
C++ Некорректная работа cin.fail() при вводе смешанных данных
при некорректном вводе cin далее уже не принимает ввод, не понимаю почему? C++
При вводе данных программа пропускает операции cin C++
Cin.clear() не работает? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lite_OnE
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 5
02.03.2016, 17:49     Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync #2
cin.clear() - восстанавливает поток, если вместо числа были введены, например буквы (пытались прочитать число, а там буквы)
cin.sync() - очищает буфер (там же написано )
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12501 / 7063 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 2
Завершенные тесты: 1
03.03.2016, 09:26     Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync #3
Цитата Сообщение от Lite_OnE Посмотреть сообщение
cin.clear() - восстанавливает поток
Сбрасывает "флаги ошибок". Ничего не восстанавливает.
Цитата Сообщение от Lite_OnE Посмотреть сообщение
cin.sync() - очищает буфер
Поведение этого чуда вообще зависит от реализации,
так что нельзя точно сказать что оно делает.
Цитата Сообщение от Donville Посмотреть сообщение
Объясните, пожалуйста, ПОПУЛЯРНО.
Объясняю. Такая обработка ошибок приведет к зацикливанию
на другой реализации потоковых классов.
Yandex
Объявления
03.03.2016, 09:26     Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Ответ Создать тему
Опции темы

Текущее время: 22:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru