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

Зависает ввод - C++

Восстановить пароль Регистрация
 
thick_int
Заблокирован
27.12.2011, 12:26     Зависает ввод #1
Вот после такого кода просто зависает клавиатура, если вводится, что-либо отличное от числа:

C++
1
2
3
4
5
6
7
8
9
10
11
int numb;
    while (!(cin >> numb))
    {
        if (cin.good())
            break;
        else
        {
            cin.clear();
            continue;
        }
    }
Как это можно исправить, чтобы после неправильного ввода (строка, а не число) поток не зависал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 12:26     Зависает ввод
Посмотрите здесь:

C++ Программа зависает
C++ зависает программа
C++ Зависает цикл
Зависает консоль C++
Программа зависает C++
зависает компиляций C++
Программка зависает C++
C++ Скрыть ввод в консоле ввод записи?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
27.12.2011, 13:48     Зависает ввод #2
C++
1
2
3
4
5
6
7
8
9
#include <limits>
//...
 
int numb;
while(!(cin >> numb))
{
    cin.clear();
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
Yandex
Объявления
27.12.2011, 13:48     Зависает ввод
Ответ Создать тему
Опции темы

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