Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
55 / 55 / 45
Регистрация: 24.03.2016
Сообщений: 378
1

Cin.clear() не работает?

16.04.2016, 18:00. Просмотров 2180. Ответов 4
Метки нет (Все метки)

Почему cin.clear() не работает как надо? ( не очищает поток ). Если мы вводим например 3 значения (123) то цикл срабатывает 3 раза.
C++
1
2
3
4
5
6
7
8
9
10
while (true) {
                cout << "Сохранить это значение? (y/n) ";
                cin >> ch;
                if (ch == 'y') {
                    fullProf += PROFIT[i];
                    break;
                }
                else if (ch == 'n') break;
                else cin.clear();
                }
Решил проблему с помощью goto. Но вопрос актуален.
C++
1
2
3
4
5
6
7
8
9
10
11
while (true) {
                cout << "Сохранить это значение? (y/n) ";
                label2:
                cin >> ch;
                if (ch == 'y') {
                    fullProf += PROFIT[i];
                    break;
                }
                else if (ch == 'n') break;
                else goto label2;
                }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2016, 18:00
Ответы с готовыми решениями:

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод....

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не...

Почему не работает cin.clear() и как работает sync()?
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char*input(char*ch,int&amp;n){...

4
6898 / 5963 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
16.04.2016, 18:50 2
Ты описание-то читал? clear() - это сброс флагов, а не очистка.
0
55 / 55 / 45
Регистрация: 24.03.2016
Сообщений: 378
16.04.2016, 18:57  [ТС] 3
nmcf, а как мне тут тогда быть?
0
6898 / 5963 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
16.04.2016, 19:03 4
Лучший ответ Сообщение было отмечено Armatus как решение

Решение

Ну есть разные приёмы. Можно так:
C++
1
cin.ignore(numeric_limits<streamsize>::max(), '\n');
1
nd2
3383 / 2771 / 1244
Регистрация: 29.01.2016
Сообщений: 9,382
16.04.2016, 21:25 5
Цитата Сообщение от Armatus Посмотреть сообщение
а как мне тут тогда быть?
Тебе же показали как: Зацикливание
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2016, 21:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Проблема с cin.ignore() и cin.clear()
Есть проблема. Добавлено через 11 минут // ConsoleApplication6.cpp: определяет точку входа...

Cin.clear cin.ignore
Как использовать cin.clear и cin.ignore?

cin.get() и cin.clear()
В общем, занимаюсь по видео-урокам на ютубе, дошли до темы &quot;массивы&quot;. Суть программы - вывести...

Проблемы со сбросом потока cin.clear()
Всем привет. Столкнулся с такой проблемой и до сих пор не смог ее решить. Имеется следующая задача....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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