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

"защита от дурака" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread152234.html
Как правильно перегружать подобные операторы #include "stdafx.h" #include <conio.h> using namespace std; class Point{ public: int x,y; }; Point operator*(Point pt1, int n, Point pt2){ ...
C++ Выполнение программы в терминале с поддержкой ключей с аргументами Подскажите пожалуйста или дайте ссылку если это уже было на форуме.. как сделать выполнение программы в терминале с поддержкой ключей с аргументами. Например: # prog -s 12 -n 5 http://www.cyberforum.ru/cpp-beginners/thread152233.html
C++ сумма 2х многочленов
Дано: spisok1.txt - содержит первый многочлен (a1+b1x+c1x^2+....) spisok1.txt - содержит второй многочлен (a2+b2x+c2x^2+....) Требуется : записать их сумму в summa.txt -((a1+a2) +...
C++ реализовать strncat(s1,s2,n)
Здраствуйте. Нужна ваша помощь! Нужна прога, берущая из файла2 n первых символов и приписывающая их в концевик файла1. Реализовать используя: strncat(s1,s2,n); //копирует первые n символов из...
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread152229.html
Задан упорядоченный массив n, вставить в массив число b, так чтобы число b не нарушало упорядоченность массива.Желательно метод с делением массива на 2.Надеюсь на помощь. (с++)
C++ Двунаправленный список, доступ к элементу Есть задание. Разработать абстрактынй тип данных, и чтобы продгдамма могла обеспечивать основные функции работы с ней одной из этих фунгкий является доступ к отдельному элементу не могу понять что... подробнее

Показать сообщение отдельно
Demien-DM
1 / 1 / 0
Регистрация: 07.07.2010
Сообщений: 32
07.07.2010, 16:47  [ТС]
Цитата Сообщение от usernet009 Посмотреть сообщение
ТС, у потока cin есть failbit. Этот фэилбит становится еденичкой если пользователь ввел что то не так, ну например
cin>>i; // i - int
А пользователь вводит 2.2
в переменную i попадает 2 а failbit становится = 1
И, если ты попробуешь дальше ввести чтото, например
cin>>f; //f - float
то ничего не введется так как failbit уже установлен а ввод может происходить только из "хорошего" потока.
В общем. К чему я все это, попробуй вот так
C++
1
2
3
4
5
6
7
cin>>i;
while(cin.fail() == 1) // cin.fail() возвращает 1 если установлет failbit
{
cout<<"IDIOT !! Enter again !\n";
cin.clear(); // сбрасывает все биты потока, тоесть поток становится "хорошим"
cin>>i;
}
p.s сам только недавно прочитал про эти биты\потоки, так что сильно не пинай если на заработает
Все работает просто замечательно !
Это именно то что я искал - короткое, простое решение.
На сколько я понимаю стандартное решение этой проблемы это считать строку с консоли и перевести ее в число (ИММХО наиболее точно этот вариант показал г-н. easybudda ).
Но я не могу использовать этот вариант поскольку еще не знаком с этими операторами.

Всем огромное спасибо и низкий поклон за внимание и помощь !!!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru