С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565

Выход из цикла while знаком '|' ?

06.09.2017, 02:32. Показов 7133. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, Страуструп дал задание выйти из цикла знаком '|'. Собственно сама прога ругается и выдает бесконечный цикл после не int ввода.

"1 Напишите программу. содержащую цикл while, в котором считываются
и выводятся на экран два числа типа int. Для выхода из программы
используйте символ ' | ' .

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main() {
    int number1 = 0;
    int number2 = 0;
 
    while (number1 != '|') {
        cout << "First number: ";
        cin >> number1;
        cout << "Second number: ";
        cin >> number2;
        
        if (number1 > number2)
            cout << "Second number less than first.\n";
        else if (number2 > number1)
            cout << "First number less than second.\n";
        else
            cout << "\nNumbers are equeals.\n";
 
        cout << "\nFirst: " << number1;
        cout << "\nSecond: " << number2;
        cout << '\n';
    }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2017, 02:32
Ответы с готовыми решениями:

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

С++ Выход из цикла
Есть цикл, написанный в дополнительной функции. Нужно вывести сумму нескольких введенных чисел, если подходящей суммы нет,то вывести...

Выход из цикла
Есть цикл. Он выполняется. Долго. Пока он выполняется я нажимаю Esc и он становится на паузу. Как осуществить? Добавлено через 10...

7
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.09.2017, 02:50
Лучший ответ Сообщение было отмечено Bring как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    int number1 = 0;
    int number2 = 0;
 
    while (true) {
        cout << "First number: ";
        if (!(cin >> number1))
            break;
        cout << "Second number: ";
        if (!(cin >> number2))
            break;
        
        if (number1 > number2)
            cout << "Second number less than first.\n";
        else if (number2 > number1)
            cout << "First number less than second.\n";
        else
            cout << "\nNumbers are equeals.\n";
 
        cout << "\nFirst: " << number1;
        cout << "\nSecond: " << number2;
        cout << '\n';
    }
0
Модератор
Эксперт С++
 Аватар для zss
13770 / 10963 / 6491
Регистрация: 18.12.2011
Сообщений: 29,240
06.09.2017, 06:34
Так будет изящнее:
C++
1
2
3
4
5
6
7
8
        cout << number1;
        if (number1 > number2)
            cout << " > ";
        else if (number2 > number1)
            cout << " < ";
        else
            cout << " = ";
       cout << number2<<endl;
0
 Аватар для dopleref
42 / 52 / 33
Регистрация: 15.12.2015
Сообщений: 199
06.09.2017, 06:43
Цитата Сообщение от Bring Посмотреть сообщение
C++
1
2
3
4
int number1 = 0; 
int number2 = 0;
 
while (number1 != '|') {
Так как вы сравниваете значение int равное 0 и символ '|', которому соответствует числовой код,
то получается что пока вы не введете для number1 значение соответствующее коду этого
символа цикл будет выполняться.
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
06.09.2017, 15:43
Цитата Сообщение от dopleref Посмотреть сообщение
Так как вы сравниваете значение int равное 0 и символ '|', которому соответствует числовой код,
то получается что пока вы не введете для number1 значение соответствующее коду этого
символа цикл будет выполняться.
Не, там фейлится поток ввода и из-за этого бесконечный цикл. И чтобы его восстановить
C++
1
2
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
0
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
06.09.2017, 18:59
Попробуйте
C++
1
While(cin >> number1)
0
 Аватар для Bring
133 / 53 / 43
Регистрация: 09.05.2015
Сообщений: 565
06.09.2017, 19:48  [ТС]
Отличная идея!

Добавлено через 47 секунд
Слишком сложно, я такое еще не проходил )

Добавлено через 38 секунд
Попробовал. По знаку программа завершается, но получилось так, что появился лишний ввод.

Добавлено через 3 минуты
Твоя идея лучше всего подошла. Спасибо.
Объясни пожалуйста, что означает восклицательный знак перед условием после if?
0
8 / 8 / 0
Регистрация: 05.09.2017
Сообщений: 81
06.09.2017, 23:17
Цитата Сообщение от Bring Посмотреть сообщение
Объясни пожалуйста, что означает восклицательный знак перед условием после if?
Это условие сравнения != - означает "не равно". Вообще ! - это отрицание в C и C++ (да и во многих других языках тоже).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.09.2017, 23:17
Помогаю со студенческими работами здесь

Выход из цикла
Ув. программисты я пишу крестики-нолики, но возникла некоторая проблема с циклами! for (t=0;t&lt;100;t++) { ...

Выход из вложенного цикла
Собственно как выходить из вложенного цикла ? goto ?

Выход за пределы цикла
Вообщем необходимо реализовать алгоритм по пунктам от 1 до 27 и в них есть переходы на другие пункты. Есть 2 цикла do while, один от 5 до...

Преждевременный выход из цикла
Здраствуйте! Спасибо за внимание. Стояла задача: 1. построить двумерный динамический массив. (выполнено) 2. нахождение количества...

Преждевременный выход из цикла
#include &lt;iostream&gt; using namespace std; void enter_new_note (); void show_sheldue (); int x = 1; char Monday , Thuesday...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «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. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru