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

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

Войти
Регистрация
Восстановить пароль
 
EfimKR
53 / 26 / 10
Регистрация: 24.06.2014
Сообщений: 229
Записей в блоге: 1
#1

Выход из бесконечного цыкла - C++

24.06.2014, 11:43. Просмотров 582. Ответов 7
Метки нет (Все метки)

Проблема с выходом из бесконечного цикла. Если для выхода вводить exit, программа виснет и бесконечно выводит, то, что записано в cout. Если использовать для выхода q всё работает нормально.

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
28
29
30
31
32
33
34
35
/* Разработать программу, которая выводит на экран горизонтальную линию из символов. 
Число символов, какой использовать символ, и какая будет линия - вертикальная, или горизонтальная - указывает пользователь.
Предусмотреть при вводе типа линии использование разного регистра (большие и маленькие буквы). Предусмотреть вариант 
многократной работы программы и выход из нее по желанию пользователя (чтобы во время одного запуска можно было выводить
не одну линию). */
#include<iostream>
using namespace std;
void main()
{
    setlocale(LC_CTYPE, "Russian");
    char exit;
    for (;;)        // Используем бесконечный цикл для многократной работы программы.
    {
        char symbol;
        int number, type_l;
        cout<<"Тип линии:   Вертикальная линия - 1. Горизонтальная линия - 2\n";
        cout<<"Введите через пробел тип линии, число символов, \n и символ, которым будет рисоваться линия \n";
        cin>>type_l>>number>>symbol;
        cout<<"\n";
        if (type_l==1)                  // Рисуем линию
        {   
            for (number; number!=0; number--)
            cout<<symbol<<"\n"; 
        }
        else if (type_l==2) 
        {
            for (number; number!=0; number--)
            cout<<symbol;
        }
        else cout<<"Неправильно введен тип линии";
        cout<<"\n Для выхода введите \"exit\" для продолжения работы введите любой другой символ \n";
        cin>>exit;
        if (exit=='exit') break;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2014, 11:43     Выход из бесконечного цыкла
Посмотрите здесь:

Многопоточность, выход из бесконечного цикла c++11 - C++
Всем привет. Я в задачах многопоточности - новичок (начал ей заниматься буквально несколько часов назад), инфу искал, читал, но как-то пока...

Выход из бесконечного цикла по нажатию кнопки. - C++
Привет всем. как можно выйти из такого цикла по нажатию какой любой кнопки (например Esc) int main(){ while(1){ ...

обьясните строение цыкла - C++
нащёл код!!он работает!! но я его не понимаю!!! обьясните цыкл!!! int exp=2; int base=10; int i=1; for (; exp; exp--) i=...

Как понимать условие цыкла while(1) ? - C++
while(1) он выполняется один раз или он вечный ? Просто обычно в круглых скобках указывают какое-то сравнение, а тут просто 1.

вычислить макс число из цыкла - C++
у меня есть такой код мне нада вычислить Максимальное число &quot;y&quot; запарилса уже думать может вы что подскажыте ? #include&lt;iostream.h&gt; ...

Отладка бесконечного цикла - C++
Здравствуйте. Проблема такая, написал цикл программы взаимодействия пользователя с меню Цикл не имеет условия выхода, что бы выйти...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,177
24.06.2014, 11:50     Выход из бесконечного цыкла #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от EfimKR Посмотреть сообщение
if (exit=='exit') break;
Как твой компилятор вообще это пропускает - непонятно
C++
1
2
3
4
char ex[10];
...
cin >> ex;
if (strcmp(ex, "exit")==0) break;
exit кажется, ключевое слово...
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
24.06.2014, 11:56     Выход из бесконечного цыкла #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
EfimKR, тип char может содержать только одну букву, а Вы пытаетесь туда запихать все слово. Условие не выполняется, потому что при вводе "exit" в переменную exit записывается только первая буква 'e'.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
exit кажется, ключевое слово...
Да, но компилятор GCC не ругается.
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,177
24.06.2014, 11:57     Выход из бесконечного цыкла #4
Цитата Сообщение от Pjeroo Посмотреть сообщение
при вводе "exit" в переменную exit записывается только первая буква 'e'
Это понятно. Но вот как компилятор не ругается на 'exit' ??? В одинарных кавычках должон стоять один символ...
Pjeroo
Землянин
34 / 34 / 12
Регистрация: 15.01.2013
Сообщений: 313
24.06.2014, 12:01     Выход из бесконечного цыкла #5
Цитата Сообщение от Байт Посмотреть сообщение
Но вот как компилятор не ругается на 'exit'
Смею предположить, что не ругается, потому что название exit используется методом exit(), а в данном случае переменная.
EfimKR
53 / 26 / 10
Регистрация: 24.06.2014
Сообщений: 229
Записей в блоге: 1
24.06.2014, 12:09  [ТС]     Выход из бесконечного цыкла #6
Всём спасибо, всё работает, всё понял. =)
Байт
Эксперт C
15841 / 10168 / 1522
Регистрация: 24.12.2010
Сообщений: 19,177
24.06.2014, 12:09     Выход из бесконечного цыкла #7
Цитата Сообщение от Байт Посмотреть сообщение
exit кажется, ключевое слово...
Простите, тут я не прав. exit - это функция. а не ключевое слово. А ее можно переопределять. Но то, что в одинарных кавычках несколько букв - это странно...

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2014, 12:30     Выход из бесконечного цыкла
Еще ссылки по теме:

Сумма бесконечного ряда - C++
Поступил в этом году в вуз, а там с первых дней программирование на уровне, мне недоступном. Первые пару заданий еще сделал, а тут совсем...

Вычисления бесконечного ряда - C++
Вот само задание http://cs310727.vk.me/v310727546/ae4f/W-C2A0gLQls.jpg Извините за ссылку, не понимаю как вставить картинку

Сумма бесконечного ряда - C++
Задание : Ввести с клавиатуры х и точность вычисления Eps. Вычислить с заданной точностью сумму: S=сумма с к=1 до бесконечности( ...

Сумма бесконечного ряда - C++
Дана такая задача. Найти сумму бесконечного ряда с точностью Е где x принадлежит интервалу (-1;1) а сам ряд я пишу словами :ИКС минус дробь...


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
24.06.2014, 12:30     Выход из бесконечного цыкла #8
Цитата Сообщение от Байт Посмотреть сообщение
Но то, что в одинарных кавычках несколько букв - это странно...
Это multicharacter literal.
см. например тут
P.S. обсуждалось уже несколько на раз на форуме на моей памяти.
Yandex
Объявления
24.06.2014, 12:30     Выход из бесконечного цыкла
Ответ Создать тему
Опции темы

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