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

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

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

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

18.12.2013, 16:22. Просмотров 223. Ответов 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?
Посмотрите здесь:

Как исправить ошибку с std::cin C++
C++ оператор cin. Как вывести информацию.
C++ Как переписать cout и cin на printf
как работает cin.good() C++
Как упростить строчки cin>>a; raz.n = a;? C++
как реализовать остановку цикла с условием cin>>a C++
C++ cin.get() и cin.clear()
C++ Как работает Cin.ignore()
C++ Как выполнять std::cin в LOOP ?
Как работает cin.get() C++
Как правильно использовать cin.get? C++
C++ Как читает поток ввода cin ?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5410 / 4806 / 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;
}
Yandex
Объявления
18.12.2013, 19:01     Как очистить cin?
Ответ Создать тему
Опции темы

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