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

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

Восстановить пароль Регистрация
 
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
18.12.2013, 16:22     Как очистить cin? #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.good() C++
C++ cin.get() и cin.clear()
Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync C++
C++ Как работает Cin.ignore()
Как работает cin.get() C++
Cin.get() и cin.getline() C++
Как правильно использовать cin.get? C++
Cin.clear cin.ignore C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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?
Ответ Создать тему
Опции темы

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