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

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

Войти
Регистрация
Восстановить пароль
 
karl 777
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 58
#1

cin остаток после ввода - C++

03.10.2013, 12:06. Просмотров 295. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
int b1=0;
int b2=0;
cout<<"Введите b1 и b2: ";
cin>>b1>>b2;
Вопрос такой, если мы введем: 1 2 3, то считается 1 и 2, но как определить, что ввели более 2-ух нужных чисел и сообщить об ошибке?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2013, 12:06     cin остаток после ввода
Посмотрите здесь:

C++ ошибка потокового ввода cin
C++ функция ввода вместо cin
C++ Отслеживание ввода данных в потоке cin
cin.getline пропуск ввода C++
Cin: проверка ввода данных C++
C++ Исправить ошибку, при которой не работает cin после vector'a (лишний символ '\n' в потоке ввода)
C++ Как читает поток ввода cin ?
C++ Как после ввода cin оставаться на той же строке?
Игнорируются потоки ввода cin C++
C++ Обработка ошибок ввода из потока cin
C++ Выяснить почему после ввода первого элемента массива цикл не работает (std::cin в цикле for)
Очистка всего буфера ввода (cin) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Algoritmer
 Аватар для Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 477
Записей в блоге: 1
03.10.2013, 12:09     cin остаток после ввода #2
Считываем всю строку:
C++
1
2
char s[255];
cin.getline(s,254);
И парсим её по разделителю (разделитель пробел)
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
03.10.2013, 12:14     cin остаток после ввода #3
не знаю как проверить, но можно удалить все что осталось во входной очереди
C++
1
while (cin.get() != '\n') ;
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.10.2013, 12:56     cin остаток после ввода #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    int b1 = 0;
    int b2 = 0;
 
    do
    {
        cout << "Введите b1 и b2: ";
        cin >> b1 >> b2;
    
        if (!cin || cin.peek() != '\n')
        {
            cin.clear();
            while (cin.get() != '\n');
            cout << "Error!" << endl;
        }
        else break;
    
    } while (true);
Yandex
Объявления
03.10.2013, 12:56     cin остаток после ввода
Ответ Создать тему
Опции темы

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