Форум программистов, компьютерный форум, киберфорум
Наши страницы

Защита от дурака. Ввод данных типа int с клавиатуры. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить функцию в пространстве имён. http://www.cyberforum.ru/cpp-beginners/thread547276.html
Задание такое, создать класс some_class который бла бла бла... короче не важно Который будет лежать в отдельном файле some_class.h Должна существовать глобальная функция std::string...
C++ Функция: найти все корни, используя метод касательных Здравствуйте,помогите с программой пожалуйста. Суть задачи такова :для функции найти все корни используя метод касательных.Я вот набросал кое-что,но выводит почему то только один корень..Что не так?... http://www.cyberforum.ru/cpp-beginners/thread547273.html
C++ Не создается файл с данными
Решил попробовать запустить пример из книги,который должен создать файл и записать в его данные.Я верю что он создается,но найти его не могу.Где же он все таки может быть? Только начал эту тему...
Помогите исправить ошибки в классе C++
Здравствуйте. Наконец то дописываю класс, но опять столкнулся с кое какими проблемами. Задание: написать класс очередь через массив. Вот что у меня получилось: #include<iostream>...
C++ Копирование массива поэлементно в другой массив http://www.cyberforum.ru/cpp-beginners/thread547255.html
Всем привет. Задание такое : Не используя оператора присваивания для массивов написать программу поэлементно копирующий один массив в другой , попутно подсчитывающий сколько раз повторяется в...
C++ Определить, принадлежит ли точка с координатами (x, y) заштрихованной области. вот ссылка на картинку. http://a2.mindmix.ru/i/users/25/79/147925/38/6660538/0.png 'я просто не знаю как тут ее вставить .При решении задач нужно использовать уравнение окружности радиусом R в VBA... подробнее

Показать сообщение отдельно
Alex5
1086 / 747 / 116
Регистрация: 12.04.2010
Сообщений: 1,907
02.03.2014, 23:11
Цитата Сообщение от Donville Посмотреть сообщение
Обьясните, пожалуйста, эту строчку
C++
1
while(!(cin>>i) || cin.get() != '\n')
Условие !(cin>>i) || cin.get() != '\n' означает: либо ошибка ввода, либо в потоке ввода после чтения i остались ещё символы - не сразу конец строки.

Пример 1. Пользователь нажимает клавиши: qwer Enter ( Enter - то есть клавишу Enter )
В этом случае будет выполнено условие !(cin>>i), т.к. из строки "qwer" нельзя прочитать целое число - ошибка ввода.

Пример 2. Пользователь нажимает: 123RT и затем Enter
В этом случае ошибки ввода нет, значение i : 123. Однако в строке ввода ещё остались символы 'R' 'T' и '\n'. В этом случае cin.get() == 'R' ( и значит !='\n' ).

Пример 3. Пользователь вводит: 5111222333 Enter
Здесь ошибка ввода, если sizeof(i) == 4, ошибка диапазона.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru