|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
|||||||||||||||||||||
Остановка выполнения программы на C++16.11.2019, 21:49. Показов 10194. Ответов 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
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 17.11.2019, 20:47 | |||
|
Можно сделать на std::, но будет чуть больше кода, чуть выше сложность.
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 17.11.2019, 21:13 | ||
|
А вот буст как раз никакая не пушка; это набор разнокалиберного оружия. И оттуда я взял подходящее по условию и трудозатратам на реализацию. Учитывая, что буст сейчас практически везде есть, использование его не представляет никакой проблемы. Восприятие буста как монолитной системы, или как экзотики, - устарело и уходят корнями в начало 2000х. Современный плюсовик не должен его бояться.
0
|
||
|
Just Do It!
|
||||||||
| 17.11.2019, 21:36 | ||||||||
|
указать на
Добавлено через 5 минут
0
|
||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 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
|
|||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||
| 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
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|
| 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
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 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
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||
| 18.11.2019, 21:40 | ||||||
![]() Вот: MinGW не видит класс thread Добавлено через 5 минут Когда флажок не поднят ошибка будет такая:
По этой же причине у него не работает мой код.
0
|
||||||
| 18.11.2019, 21:40 | |
|
Помогаю со студенческими работами здесь
40
Как реализовать задержку выполнения определённой части программы без полной задержки всей программы?
Последовательность выполнения программы Очерёдность выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера 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. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|