С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 01.04.2017
Сообщений: 30

Подсобите понять ошибку:

17.08.2017, 01:58. Показов 988. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я написал простенькую функцию, которая заставляет угадывать число, подсказывая больше оно или меньше, пока не угадаешь.
Если вводить вместо цифры букву, программа входит в цикл, выдавая "больше". Я попытался решить проблему с помощью cin.clear. Но это не помогает. Почему?
Подскажите, пожалуйста проблему.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void foo(int size, int chislo, int *mass) {
        for (;;)
               {
 
                std::cin >> chislo;
                if (cin.fail())
                {
                    cin.clear();
                    cin.sync();
                    
                }
                        if (mass[size] < chislo) {
                std::cout << "smaler" << endl; 
                
            };
                if (mass[size] > chislo) {
                std::cout << "Biger" << endl; 
                
            };
            
 
            if (mass[size] == chislo) {
                std::cout << "good"<<endl;
                break;
            }
            
        };
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.08.2017, 01:58
Ответы с готовыми решениями:

понять ошибку
Доброго вечера! Помогите понять что не так. Куда жать, как смотреть ошибку, не пнял. Правой мыщйу на vivodi.cpp , компилировать в...

не могу понять ошибку
#include &lt;iostream&gt; using namespace std; int main(); { double a=0, b-0, c=0; cout &lt;&lt;&quot;a&quot;; cin &gt;&gt; a; cout &quot;b&quot;...

Помогите понять ошибку
Не могу понять, что ему не нравится? Обычный вектор векторов: template &lt;class typeData&gt; class Ttest { typedef...

3
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
17.08.2017, 03:22
Цитата Сообщение от Иван76Чернов Посмотреть сообщение
Я попытался решить проблему с помощью cin.clear. Но это не помогает. Почему?
Потому, что буква осталась в очереди ввода, sync() - не всегда работает. Попробуй вместо cin.sync():
C++
1
while (cin.get() != '\n');
0
2 / 2 / 0
Регистрация: 01.04.2017
Сообщений: 30
17.08.2017, 12:47  [ТС]
Спасибо, помогло, объясните, пожалуйста как это работает.

Добавлено через 4 минуты
И как можно разделить буквы и цифры? можно ли это сделать, например, перегрузкой функций?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
17.08.2017, 15:10
Лучший ответ Сообщение было отмечено Иван76Чернов как решение

Решение

Цитата Сообщение от Иван76Чернов Посмотреть сообщение
пожалуйста как это работает.
Извлекает символы из очереди ввода до '\n' (попдает в очередь при нажатии Enter, значит - последний в очереди), и его извлекает (очищает очередь ввода).

Добавлено через 3 минуты
Цитата Сообщение от Иван76Чернов Посмотреть сообщение
И как можно разделить буквы и цифры?
Читать строку, отделять, переводить строку в число. Для разделения символов есть функции cctype.
http://www.cplusplus.com/reference/cctype/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.08.2017, 15:10
Помогаю со студенческими работами здесь

немогу понять ошибку
class Wor { private: static const int sz = 40; char wordik; public: Wor() { strcpy(wordik , &quot;&quot; );

Не могу понять ошибку
#include &lt;iostream.h&gt; #include &lt;math.h&gt; int main () { double x,a,d,h,t,e,g,b,c,z,y,s,rezylt; не могу понять чем программе sqrt...

Не могу понять ошибку
Всем привет. Делаю задание из универа. В принципе все работает с использованием дружественного класса, но хочется обойтись без...

Не могу понять ошибку
#include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; #include&lt;stdio.h&gt; int main() { double x=3.741, y=-0.825,z=0.160, A,...

Не могу понять ошибку
По задумке надо удалить два идущих подряд одинаковых слова. Задумка не выходит, выдаёт бурду... HELP ME!( #include &quot;stdafx.h&quot;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru