|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||||||||||||||
Остановка выполнения программы на C++16.11.2019, 21:49. Показов 10562. Ответов 62
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Сейчас работаю над проектом (отправка кодов решений на C++ и их проверка на сервере с помощью PHP). Получается отправить программу из окна редактора и проверить ее с помощью тестов, а также замерить время выполнения каждого теста, но возникает проблема, замер времени происходит только после запуска и завершения программы, а мне нужно выйти из нее до ее завершения по исчечении 1-2 секунд (то есть, обработать ошибку TLE (Time Limit Exceeded)). Средставми PHP этого достигнуть не получается, так как необходим выход из программы до ее завершения. Поэтому, я решил делать остановку внутри кода на C++. Я никогда раньше не делал такого и нужно приблизительно следущее:
Код программы на C++:
Очень буду благодарен за ваш ответ, так как мы сами пока не знаем что делать. Добавлено через 39 минут Получилось сделать замер в начале и конце программы, но я не уверен, что это наилучший вариант. Вот, что получилось:
0
|
|||||||||||||||||||||
| 16.11.2019, 21:49 | |
|
Ответы с готовыми решениями:
62
Остановка выполнения консольной программы без system("pause")
Полная остановка программы |
|
Just Do It!
|
||
| 17.11.2019, 20:43 | ||
|
DrOffset, а интересно, и как раз в тему, зачем буст то? стандартного <thread>'а разве не хватает? если честно, я думал, уже сто человек предложили код без буста на чистом стандартном <thread>
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 17.11.2019, 20:47 | |||
|
Можно сделать на std::, но будет чуть больше кода, чуть выше сложность.
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 17.11.2019, 21:13 | ||
|
А вот буст как раз никакая не пушка; это набор разнокалиберного оружия. И оттуда я взял подходящее по условию и трудозатратам на реализацию. Учитывая, что буст сейчас практически везде есть, использование его не представляет никакой проблемы. Восприятие буста как монолитной системы, или как экзотики, - устарело и уходят корнями в начало 2000х. Современный плюсовик не должен его бояться.
0
|
||
|
Just Do It!
|
||||||||
| 17.11.2019, 21:36 | ||||||||
|
указать на
Добавлено через 5 минут
0
|
||||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 17.11.2019, 21:51 | ||
|
В Visual Studio boost использует автоподключение либ (через прагму). Иногда, если студия новая, а буст старый - автоподключение работает неправильно и предлагает к линковке не ту версию, и тогда появляются такие ошибки, что не найдена библиотека. Еще такая ошибка может быть, если версия компилятора в студии одна, а буст поставили для другой (имеются в виду скомпилированные библиотеки). Тогда автоподключение работает правильно, выбирает соответствующие либы для линковки, но естественно не находит их, т.к. версия-то стоит другая. Вообще конечно, одной из причин, почему я сделал пример на бусте - ТС написал, что эксплуатироваться это будет на Ubuntu, а там-то как раз таких проблем не бывает.
0
|
||
|
Just Do It!
|
|||
| 17.11.2019, 22:45 | |||
|
мда, C::B я уже давненько не запускал, а ваще из аскетичных самая лучшая иде, имхо.
0
|
|||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||
| 18.11.2019, 01:27 [ТС] | ||
|
DrOffset, мне удалось поставить boost для CodeBlocks. Но я не знаю как изменить ваш код, чтобы работало. Выдает кучу ошибок. Сама библиотека работает.
Добавлено через 5 минут
0
|
||
|
Just Do It!
|
|||||||
| 18.11.2019, 05:19 | |||||||
Входные(текущие) на тест: user_main выполняется за 1 секунду. (увеличить(больше 6 сек), чтобы проверить срабатывание на лимит(6сек)) Таймер на лимит настроен на 6 секунд. Добавлено через 2 минуты надо бы тестовый стенд замутить, но на глаз вроде работает
1
|
|||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||||
| 18.11.2019, 09:13 | ||||||||
Сообщение было отмечено XLAT как решение
РешениеКод работает. Вы же понимаете, что это очень некрасиво, вот так просить о помощи, но при этом не предоставлять ничего, что могло бы способствовать эту помощь осуществить? Хотя бы ошибки покажите.
1
|
||||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:35 [ТС] | |
|
DrOffset, здравствуйте. Извините, что отнимаю у вас время. Мне до сих пор не смогли установить сервер. Произошла какая-то ошибка и они снова устанавливают. Вот скриншот из поста 30 (ваш последний код). Запуск на CodeBlocks 17.12 привел вот к такому исходу:
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:38 [ТС] | |
|
Вот более подробный снимок. Я забыл развернуть стек с ошибками:
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:41 [ТС] | |
|
XLAT, здравствуйте! Спасибо, что уделили внимание. Запуск вашего кода привел к такому исходу:
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 18.11.2019, 20:44 | |
|
Fixer_84, какой версии у вас компилятор в CodeBlocks?
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:47 [ТС] | |
|
DrOffset, gcc (tdm64-1) 4.9.2
0
|
|
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|
| 18.11.2019, 20:52 [ТС] | |
|
DrOffset, если вернуться к более простому варианту с boost. Ваш код из поста 4 выдал такие ошибки:
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 18.11.2019, 21:12 | |||
|
Лучше поставить вот этот: https://sourceforge.net/projec... e/download А еще лучше, чтобы больше не мучиться, поставить MSYS2 и в ней уже и mingw, и boost, и остальное, что нужно. Там гарантированно все верно и совместимо.
0
|
|||
|
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 2
|
|
| 18.11.2019, 21:20 | |
|
Fixer,добрый день,очень хотел бы с вами связаться,есть вопрос по С++
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||||
| 18.11.2019, 21:40 | ||||||
![]() Вот: MinGW не видит класс thread Добавлено через 5 минут Когда флажок не поднят ошибка будет такая:
По этой же причине у него не работает мой код.
0
|
||||||
| 18.11.2019, 21:40 | |
|
Как реализовать задержку выполнения определённой части программы без полной задержки всей программы?
Последовательность выполнения программы Очерёдность выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|