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

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

25.09.2012, 22:06. Показов 11871. Ответов 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
5500 / 4895 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru