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

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

Войти
Регистрация
Восстановить пароль
 
Богдан Корниено
9 / 9 / 1
Регистрация: 24.03.2011
Сообщений: 152
#1

Зацикливается вывод в функции - C++

04.09.2012, 21:38. Просмотров 465. Ответов 2
Метки нет (Все метки)

Доброй ночи. Написал простую функцию для ввода целого числа с клавиатуры.
C++
1
2
3
4
5
6
7
8
9
10
11
12
int input_number()
{
    int n;
    do 
    {
        std::cout << "Enter num: ";
        std::cin >> n;
        std::cout << std::endl;
    } while( std::cin.fail() );
    
    return n;
}
Если вводить число, все работает нормально. А если ввести символ, то строка "Enter num: " зацикливается до бесконечности. Не могу понять. Как такое возможно. Ведь по идее должна выполняться инструкция std::cin...
Помогите разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 21:38     Зацикливается вывод в функции
Посмотрите здесь:

Вывести таблицу значений функции (программа зацикливается) - C++
Уже перепробовал разные варианты кода,все ровно не получается Нужно вывести таблицу значений ф-ции,с диапазоном от -4 до 4,шаг 0.5 ...

Вычислить и вывести на экран значения заданной функции. Программа зацикливается - C++
Задание на картинке. Суть проблемы в том, что при нарушении условии в func1, начинается бесконечный вывод этой строки: else cout &lt;&lt; &quot;...

Зацикливается программа - C++
Нужно сделать стек из элементов и вывести все положительные значения. Программа на этапе принта зацикливается, посмотрите, что не так: ...

Почему зацикливается? - C++
Такая программка: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; void strCon(char...

Не нормально зацикливается Do - C++
Нужно написать процедуру, которая сравнивает каждое слово из текстового файла с каждым словом из словаря (слова уже забиты в список) и...

Multimap зацикливается - C++
Всем добрый вечер, Помогите, пожалуйста разобраться с зацикленным &quot;Not found&quot;. Поиск по названию блюда происходит нормально, а вот...

программа зацикливается - C++
помогите скажите пожалуйста почему моя программа зацикливается #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; ...

Программа зацикливается - C++
Программа зацикливается после ввода размеров массива. Подскажите пожалуйста, где ошибка. #include &lt;iostream&gt; void inn(int **, int,...

Программа зацикливается - C++
всё описание я зделал в коде #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; using namespace std; int main()...

Программа зацикливается - C++
void __fastcall TForm1::Button1Click(TObject *Sender) { int k; float a,sum,x; a=StrToFloat(Edit1-&gt;Text); k=1; sum=0; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1640 / 1268 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
04.09.2012, 22:01     Зацикливается вывод в функции #2
failbit надо сбросить чтобы выполнялась
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int input_number()
{
    int n;
    do
    {
        std::cout << "Enter num: ";
        std::cin >> n;
        std::cin.clear();
        std::cout << std::endl;
    } while( std::cin.fail() );
 
    return n;
}
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.09.2012, 22:15     Зацикливается вывод в функции #3
Цикл для чего в функции? fail() при ошибке возвращает true (а не false), поэтому при ошибке нет выхода из цикла. Если хотите, чтобы при ошибке был выход из цикла:
C++
1
2
3
4
5
6
7
int n;
    do
    {
        std::cout << "Enter num: ";
        std::cin >> n;
        std::cout << std::endl;
    } while( !std::cin.fail() );
Yandex
Объявления
04.09.2012, 22:15     Зацикливается вывод в функции
Ответ Создать тему
Опции темы

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