1 | |
Остановка программы в определенном месте11.05.2012, 15:04. Показов 11872. Ответов 20
Метки нет (Все метки)
Привет всем, написал программу, а в ней в некоторых местах обработал случай возможной ошибки, и нужно чтобы программа дальше не выполнялась после этого случая, а заканчивала работу в том месте, но не закрывалась, return не подходит, получается выход из программы полностью, exit аналогично, abort уже немного ближе похоже на то что мне нужно, но выскакивает, окошко с 3 кнопками отмена, повторить и продолжить, больше примеров не нашел... сделал через if else -работает, но 3-4 таких конструкции писать, что в else попадет остальная часть программы, программа получается немного громоздкой и не удобной
программа написана, работает все хорошо, но.. вот что нужно мне вообще по заданию сделать 1. читаем из файла строки, если больше 20, то выдать сообщение об ошибке строк должно быть не больше 20 2. файл не найден - ошибка 3. в файле нет ни одной записи 4. запись в файле некорректна и конкретно все объяснить профессору... и чтобы программа не получилась запутанной... а то объяснять эту запутанность нужно будет, да еще и на немецком языке , что так не хотелось бы так вот, пункты 1-4 получаются в моем случае в if, а остальная часть должна тогда попадать в else, и это при 4 сравнениях 4 else на один участок конкретный вопрос, после того как нашлась ошибка, выдается сообщение о ней, и программа останавливается в этом месте, но без закрытия в дельфи я знаю как такое сделать.. но С не моя стихия, но написать могу что-то, что по заданию требуется Извините за столь длинный и запутанный вопрос..
0
|
11.05.2012, 15:04 | |
Ответы с готовыми решениями:
20
MFC: остановка программы в нужном месте Остановка кода при определенном действии Клик в определенном месте Скрытие div`а в определенном месте |
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|||||||||||||||||||||
11.05.2012, 15:44 | 4 | ||||||||||||||||||||
Кто откуда выходит, и что не срабатывает? Нажми в консоли
Главное понять на сколько нужно приастоновить работу.
Я предложил не лучший вариант. Кросплатформенного варианту нет. можно
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
11.05.2012, 17:56 | 5 |
подробнее? ... это как?
критическая ошибка чтоли? это точно. Добавлено через 1 минуту кажется понял.. а зачем тебе else ?) подумай как обойтись без него.
0
|
11.05.2012, 18:49 [ТС] | 6 |
я к сожалению ступил, я могу просто выйти из процедуры полностью, но не прекратить ее, я к сожалению заблуждался все это время, думал неправильно оО
смотрите у меня 4 случая ошибки работаем с первой ошибкой, в файле больше 20 строк, значит выводим сообщение об ошибке, а дальше по коду идет дальнейшая обработка, куда мне ее засунуть чтобы она не выполнилась? конечно в else, иначе я никак не остановлю программу после первой же ошибки вторая ошибка, файл не найден, что я делаю? снова через if смотрю есть или нет, если есть продолжается программа, если нет что мне делать с остальным куском кода? снова в else 3 ситуация, в файле нет ни оной строки, программа мне выдаст сообщение об этом, а что с дальнейшим кодом? снова else чтобы не выполнилась оставшаяся часть, иначе читать нечего, и решать соответственно тоже нечего.. 4 ситуация, в файле записаны данные которые программа не сможет расшифровать, скажем вместо цифр напишем хотябы одну букву, тут явный критак получится в дальнейшей обработке, и снова нужно эту ситуацию взять в if а остальной код в else чтобы не выполнился и получилось у меня ветвление боже мой... исключительная ситуация, тоже самое что и сравнение получается... я подумал уже сделать решение в другой процедуре, в отдельной... чтобы если что, грузить или не грузить процедуру, но этим же учителям нужно так как стоит в задании решить... А охото получить отлично, чтобы потом выровнять оценку по черчению... оценки с программирования и черчения будут сложены и поделены... не понимаю их логику, в чем сходство между черчением и программированием список из 4 ошибок конечно в данный момент не в правильной последовательности объявлен, но в программе все как нужно, сперва проверка на файл, потом на пустоту, потом на некорректность, потом на больше или меньше 20, это я тут так в разноброс написал прошу прощения, опять написал Санта Барбару....
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
11.05.2012, 18:52 | 7 |
Если ошибки нет, то и без всякого else программа продолжит работу.
0
|
11.05.2012, 19:01 [ТС] | 8 |
так это понятно!!! мне нужно будет специально программу спровоцировать на ошибку, чтобы показать как она поведет себя в данном случае, в этом то вся беда получается
Добавлено через 1 минуту я тут кстати подумал зациклить каждую ошибку и потом по цепочке выполнять, чтобы не переходило к другому участку пока в первом ошибка и так далее
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|||||||||||
11.05.2012, 19:04 | 9 | ||||||||||
на примере:
1
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
11.05.2012, 19:13 | 11 |
попробуй поставь перед getchar(); --> fflush(stdin);
0
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
12.05.2012, 00:42 | 13 |
behaviour
0
|
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
|
|||||||||||
12.05.2012, 01:48 | 14 | ||||||||||
Остальной код будет выполняться без всякого else если условие ошибки не будет выполнено. Так пойдет? Добавлено через 3 минуты Вот пример открытия файла:
0
|
12.05.2012, 02:44 [ТС] | 15 |
вы приводите аналогичные примеры, ответьте тогда на вопрос, почему у вас не закрывается консоль???? если конечно у вас этого и не происходит, я чтобы не делал на подобии - тупо закрывается консоль и до свидания...
exit return все это выход из подпрограммы, причем принудительно из отдельной функции/процедуры я таким методом выхожу, но выходу полностью всей подпрограммой, но не ее частью вроде бы задача не шибко сложная, но как видно многим не известна такая проблема... которая возникла у меня
0
|
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
|
|
12.05.2012, 10:13 | 16 |
Нужно что бы консоль не закрывалась после ошибки? И если да, то как долго, или после чего её можно закрыть?
0
|
12.05.2012, 15:57 | 18 |
Arcor, просто запускай свою программу из консоли.
Окно появляется на доли секунды и исчезает потому что это не проблема, а нормальное поведение.
0
|
6 / 5 / 0
Регистрация: 02.04.2012
Сообщений: 82
|
|
12.05.2012, 20:07 | 20 |
На мой вопрос не ответил. Как можно помочь человеку если он сам обьяснить не может в чём ему нужна помошь?
1
|
12.05.2012, 20:07 | |
12.05.2012, 20:07 | |
Помогаю со студенческими работами здесь
20
Вывод подменю в определенном месте Закрепить изображение в определенном месте Фрейм в определенном месте по центру Фиксирование в определенном месте прокрутки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |