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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Lawlliet
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
#1

Прервать работу програмы - C++

25.09.2012, 22:06. Просмотров 1600. Ответов 20
Метки нет (Все метки)

У меня вопрос , могу ли я как то прервать работу программы при невыполненни или выполнении условия?

C++
1
2
3
4
 if ((defaultTemp > MaxTemp) or (MaxTemp <MinTemp))
         std::cout<<"ERROR!!\n\n WRONG  TEMPERATURE!!\n\n"; // прерывание программы
         else
         std::cout<<"Max temperature is "<<MaxTemp<<endl;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2012, 22:06     Прервать работу програмы
Посмотрите здесь:

Как прервать работу функции? - C++
dot CrossLine (const line &amp;L, const line &amp;P, dot&amp;D) { double z; z=Determin(L.A,L.B,P.A,P.B); if (fabs(z)&lt;1e-12) { char...

Можно ли прервать цепочку наследования? - C++
например есть три класса, A, B и C. Класс &quot;А&quot; - базовый, &quot;B&quot; наследуется от &quot;A&quot;, &quot;C&quot; наследуется от &quot;B&quot;, как бы получается цепочка...

Не могу прервать процедуру по таймеру - C++
Здравствуйте. Не могу разобраться с запуском-остановкой таймера на С++. Сделал диалоговое окно, по нажатию ОК запускаю таймер, запускаю...

Как корректно прервать цикл? - C++
Вот цикл.Я спрашиваю &quot;Добавить еще?&quot;,пользователь жмет y или n и у меня сразу весь цикл делается (т.е. 10 раз выводит cout без ввода).Как...

програмы - C++
может у кого есть колекция прог по С++ буду сильно благодарен

Как правильно прервать/возобновить цикл - C++
Такая вот проблема: есть часто встречающаяся функция ввода вещественного массива (как правило, большого). При вводе не цифры приходится все...

Как прервать цикл используя условия ? - C++
Есть цикл for(double i=1;i&lt;=?;i++) { s+=pow(((2*i)+1),4.0); }Мне нужно чтобы он останавливался когда я задам условие...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 22:11     Прервать работу програмы #2
C++
1
exit(1);
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 22:14     Прервать работу програмы #3
Исключение киньте.
Lawlliet
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
25.09.2012, 22:17  [ТС]     Прервать работу програмы #4
спасибо

разобрался

C++
1
2
3
4
5
6
if ((defaultTemp > MaxTemp) or (MaxTemp <MinTemp))
         {std::cout<<"ERROR!!\n\n WRONG  TEMPERATURE!!\n\n";
         system("pause");
         exit(1);}
         else
         std::cout<<"Max temperature is "<<MaxTemp<<endl;
получаеться так
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
25.09.2012, 22:35     Прервать работу програмы #5
Либо используйте return, если код находится прямо в функции main, либо бросайте исключение. Функцию exit в C++ коде лучше не использовать.
Lawlliet
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
25.09.2012, 22:41  [ТС]     Прервать работу програмы #6
это метод класса.
а как мне лучше тогда прервать программу?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 22:44     Прервать работу програмы #7
Цитата Сообщение от rangerx Посмотреть сообщение
Функцию exit в C++ коде лучше не использовать.
Причина?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:19     Прервать работу програмы #8
alsav22, не есть хорошо, когда некая функция возомнила себя Ктулху и может просто так завершить программу.

Добавлено через 3 минуты
Lawlliet,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
struct Foo
{
    void func()
    {
        throw 42;
    }
};
 
int main()
{
    Foo f;
    try
    {
        f.func();
    }
    catch(...)
    {
        std::cout << "Wow, something wrong with func() in Foo. Maybe, she is ill" << std::endl;
    }
    return 0;
}
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
25.09.2012, 23:22     Прервать работу програмы #9
soon,

Не по теме:

Каждый имеет право быть Ктулху! Ктулху фтанг! А функциям и подавно можно!

alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 23:25     Прервать работу програмы #10
Цитата Сообщение от soon Посмотреть сообщение
alsav22, не есть хорошо, когда некая функция возомнила себя Ктулху и может просто так завершить программу.
Разве это функция решила, а не программист?

Цитата Сообщение от Lawlliet Посмотреть сообщение
могу ли Я как то прервать работу программы при невыполненни или выполнении условия?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:29     Прервать работу програмы #11
alsav22, Так-то, да, решил программист. Но что если используется сторонняя библиотека? Писали ее не мы, решали за функцию не мы, значит, можно попробовать утверждать, что функция сама так захотела. Суть-то не в том, кто решил, а в том, что из-за нее наша программа упадет и мы ничего не сможем сделать.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 23:42     Прервать работу програмы #12
Но в данном конкретном случае, по моему, ничего страшного не призойдёт, если применить exit() ?
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:52     Прервать работу програмы #13
alsav22, полагаю, что ничего. Однако, я все-же настойчиво советую исключения. Они делают все то, что требуется в поставленной задаче и даже чуточку больше.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
26.09.2012, 02:02     Прервать работу програмы #14
Цитата Сообщение от alsav22 Посмотреть сообщение
Причина?
3.6.1
Calling the function std::exit(int) declared in <cstdlib> (18.3) terminates the program without leaving the current
block and hence without destroying any objects with automatic storage duration (12.4). If std::exit is called to end a
program during the destruction of an object with static storage duration, the program has undefined behavior.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2012, 03:23     Прервать работу програмы
Еще ссылки по теме:

Прервать цикл из цикла, вложенного в него - C++
Приветствуют. Собственно, вопрос в названии темы. for(int i = 1; i &lt;= 10; i++) for(int j = 1; j &lt;= 5; j++) { if(/* здесь условие...

Ускорение програмы на с++ - C++
Здраствуйте!Нужно ускорить программу по возможности. #include &lt;iostream&gt; #include &lt;vector&gt; #include...

Выход из програмы да,нет! - C++
Нужен код програмы чтобы в конце было чтобы выйти из програми нажмите такуэто клавишу или хотите продолжить просмотр! За рание...

Меню для програмы - C++
Есть прога для курсовой, на нее нада сделать меню. Примерно такого вида: ___________________________________________________________...

Зависание програмы и бесконечный while - C++
Доброго времени суток! Почему простой: while (true) {} заставляет процесс тупо зависнуть?


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 03:23     Прервать работу програмы #15
Пример можно?
Yandex
Объявления
26.09.2012, 03:23     Прервать работу програмы
Ответ Создать тему
Опции темы

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