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

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

25.09.2012, 22:06. Показов 11819. Ответов 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;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2012, 22:06
Ответы с готовыми решениями:

Как прервать работу функции?
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...

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

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

20
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 22:11
C++
1
exit(1);
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 22:14
Исключение киньте.
0
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
25.09.2012, 22:17  [ТС]
спасибо

разобрался

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;
получаеться так
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
25.09.2012, 22:35
Либо используйте return, если код находится прямо в функции main, либо бросайте исключение. Функцию exit в C++ коде лучше не использовать.
0
2 / 2 / 0
Регистрация: 25.03.2010
Сообщений: 145
25.09.2012, 22:41  [ТС]
это метод класса.
а как мне лучше тогда прервать программу?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 22:44
Цитата Сообщение от rangerx Посмотреть сообщение
Функцию exit в C++ коде лучше не использовать.
Причина?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:19
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;
}
0
Twilight Parasite
 Аватар для Invader_Zim
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
25.09.2012, 23:22
soon,

Не по теме:

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

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

Цитата Сообщение от Lawlliet Посмотреть сообщение
могу ли Я как то прервать работу программы при невыполненни или выполнении условия?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:29
alsav22, Так-то, да, решил программист. Но что если используется сторонняя библиотека? Писали ее не мы, решали за функцию не мы, значит, можно попробовать утверждать, что функция сама так захотела. Суть-то не в том, кто решил, а в том, что из-за нее наша программа упадет и мы ничего не сможем сделать.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2012, 23:42
Но в данном конкретном случае, по моему, ничего страшного не призойдёт, если применить exit() ?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.09.2012, 23:52
alsav22, полагаю, что ничего. Однако, я все-же настойчиво советую исключения. Они делают все то, что требуется в поставленной задаче и даже чуточку больше.
1
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
26.09.2012, 02:02
Цитата Сообщение от 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.
2
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 03:23
Пример можно?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.09.2012, 12:30
alsav22, http://blog.copton.net/archive... index.html
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 13:53
soon, можно что-нибудь для примера по русски и без boost? Какой-нибудь простой код, в котором при применении exit() возникнет неопределённое поведение.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.09.2012, 18:02
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
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <thread>
 
std::vector<int> v(100000000);
 
void fill()
{
    std::fill(v.begin(), v.end(), 42);
}
 
void my_exit()
{
    exit(0);
}
 
int main()
{
    std::thread t1(fill);
    std::thread t2(my_exit);
 
    t1.join();
    t2.join();
    return 0;
}
У меня сегфолт. Без экзита все чудно.
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.09.2012, 18:15
Цитата Сообщение от soon Посмотреть сообщение
#include <thread>
У меня компилятор это не понимает.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.09.2012, 18:20
alsav22, фишка C++11. Суть в том, что в одном потоке идет работа с глобальным объектом а второй поток нагло прерывает работу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2012, 18:20
Помогаю со студенческими работами здесь

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

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

Прервать работу скрипта
Добрый день! Подскажите, пожалуйста, такой момент. допустим я запустил такой код: ping -n 1 -w 10000 127.255.255.255 Как...

Динамически прервать работу
Как можно прерывать процесс. Например, у меня в цикле идут вычисления, когда я нажимаю кнопку, он прекращает работу

Прервать работу батника, если FTP-сервер недоступен
У меня реализован батник с работой по фтп. Как прервать работу батника если фтп не доступно echo open 192.168.0.101 &gt;&gt;1.txt...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru