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

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

Войти
Регистрация
Восстановить пароль
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
#1

Как очистить cin? - C++

18.12.2013, 16:22. Просмотров 314. Ответов 1
Метки нет (Все метки)

собственно защита от дурака, от пользователя требуется цифра, а он вводит букву, и все следующие cin не работают, cin.clear() не подходит, как реанимировать cin ?

Добавлено через 3 минуты
C++
1
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
вроде бы нашёл решение, но если первыми символами являются цифры, то cin все равно их записывает, как избежать этого?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 16:22     Как очистить cin?
Посмотрите здесь:

Как работает cin.get() - C++
Решил посмотреть как работает cin.get(). Тупо тянет символы из буфера. В конструкторе не нашёл &quot;привязки буфера к stdin&quot; или вызовов...

как работает cin.good() - C++
Здравствуйте. Мне необходимо организовать &quot;защиту от дурака&quot;. Пользователь должен ввести целое число. Моя программа должна считывать...

Как правильно использовать cin.get? - C++
cin.get и cin.getline - одно и то же? Мне нужно задание полностью с указателями сделать, но я не понимаю как использовать при этом...

Как упростить строчки cin>>a; raz.n = a;? - C++
struct Size { int n; int m; }; int _tmain(int argc, _TCHAR* argv) { Size raz; setlocale(LC_ALL,&quot;&quot;); int a,...

Как выполнять std::cin в LOOP ? - C++
Хочу сделать что то вроде командной строки. 1ый раз читает и выполняет нормально, но следующий раз вижу что ждет от меня ввода, но ни...

оператор cin. Как вывести информацию. - C++
Я написал программу: #include&lt;iostream.h&gt; void main(void) { int t; cout&lt;&lt;&quot;введите ваше любимое число и нажмите enter:&quot;; ...

Как читает поток ввода cin ? - C++
Спасибо большое, разобрался. Возникли новые вопросы: 1) как читает поток ввода оператор cin ? Например: char a,b; ...

Как переписать cout и cin на printf - C++
Помогите глупому новичку! Как переписать в данных кодах эти cout и cin на простые например на printf? cout&lt;&lt;&quot;1. Сгенерировать...

Как исправить ошибку с std::cin - C++
помогите у меня пропускает последующие вводы если вводишь знак или букву вот код std::cout&lt;&lt;&quot;A: &quot;; std::cin&gt;&gt;AA; ...

как переделать с cout, cin на printf, scanf??? - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; const int n=30; class TRecord { public: ...

Как заставить std::cin распознавать префиксы? - C++
Здравствуйте, народ. Вы не знаете как заставить cin распознавать префиксы? типо: Ввод: 10 Вывод(в десятичном виде): 10 Ввод: 010 ...

Как проигнорировать последовательность символов в std::cin? - C++
Есть два числа, разделенных последовательностью &quot;--:&quot;. Если бы это делалось при помощи sscanf: sscanf(input, &quot;%d--:-%d&quot;, &amp;a, &amp;b); ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.12.2013, 19:01     Как очистить cin? #2
C++
1
2
3
4
5
6
7
8
// в строке ввода только цифры, перед которыми могут быть + или -.
int a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
Ответ Создать тему
Опции темы

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