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

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

17.08.2017, 01:58. Показов 984. Ответов 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
Сообщений: 29
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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru