1 | ||||||
Не выводить сообщение об ошибке, прописанной в функции04.09.2018, 15:21. Показов 843. Ответов 8
Метки нет (Все метки)
Привет. Консольный морской бой.
Есть функция проверки координат. Если ошибка есть, то в этом блоке if сработает cout. Дело в том, что эту функцию в программе использую в разных случаях. И иногда мне не нужно, чтобы выводились сообщения об ошибке (например, эта функция также используется для автоматического размещения кораблей). Можно как-то решить эту проблему не переписывая функцию заново без строки об ошибке?
0
|
04.09.2018, 15:21 | |
Ответы с готовыми решениями:
8
Как выводить сообщение об ошибке на форму из файла обработчика Написать функцию. Функция должна выводить сообщение об ошибке, если было введено два слова и более Как не выводить на экран сообщение об ошибке выполнения макрокоманды, при нажатии кнопки "Отмена"? Сообщение об ошибке "Имя... не распознано как имя командлета, функции, файла сценария..." при вызове функции |
online
51 / 34 / 16
Регистрация: 11.02.2018
Сообщений: 221
|
|
04.09.2018, 15:47 | 2 |
Джон Кофи, проще будет перенести создание кораблей в отдельную функцию.
Это правильнее, чтобы не конфликтовали условные операторы.
0
|
online
51 / 34 / 16
Регистрация: 11.02.2018
Сообщений: 221
|
||||||
04.09.2018, 16:04 | 4 | |||||
Джон Кофи,
Сам исходник программы то скинь(main и прочие функции). Я не понимаю, где создание кораблей, игровой процесс...
0
|
165 / 114 / 59
Регистрация: 12.07.2018
Сообщений: 277
|
|
04.09.2018, 16:05 | 5 |
Джон Кофи, можно возвращать как результат функции не true/false, а текст сообщения об ошибке (если ошибки нет - возвращать пустую строку). В том случае, когда должно быть выведено сообщение, выводить его, в противном случае просто анализировать текст сообщения на пустую строку, чтобы проверить, было ли размещение успешным.
0
|
04.09.2018, 16:10 [ТС] | 6 |
не понял, что вы этим сказать хотите.
Подробнее поясню. В main-е выбор реализован - в ручную корабли расставить или автоматически. Функция эта используется для проверки заполнения остальных клеток кораблей после первой. Также ее удобно применять и для автоматического заполнения. Только в случае ошибок, в консоль будут кидаться сообщения о них, а это некрасиво, как минимум.
0
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
|
04.09.2018, 16:12 | 7 |
Не по теме: Хмм. Я бы выразился в том смысле, что (имхо) тут допущена архитектурная ошибка. Функция выполняет сразу две функции (да, тавтология, ну да ладно уж): можно обойтись без большого переписывания, если функция будет возвращать структуру, содержащую флаг успешности true/false и текстовую строку сообщения об ошибке (в случае успеха - пустую строку или "OK"). Но это костыль, и смысла в его применении нет.
0
|
04.09.2018, 16:17 [ТС] | 8 |
Бард, когда корабль размещен верно, сообщения у меня и не выводится... Меня просто не так поняли. Сейчас попробую залить скрин.
Добавлено через 1 минуту просто хочется не делать длинного кода... ладно, я в общем-то понял, что все предлагают не пихать сообщение в эту функцию. Буду думать Добавлено через 2 минуты изначально у меня эти сообщения находились вне функции. Но они занимали в итоге большое количество строк, код был хуже читаем. И поэтому я их написал в функции, стало намного удобнее. Но вот сделав авторасстоновку, выглядит теперь не очень.
0
|
04.09.2018, 16:24 [ТС] | 9 |
на скрине видно два сообщения об ошибках
0
|
04.09.2018, 16:24 | |
04.09.2018, 16:24 | |
Помогаю со студенческими работами здесь
9
сообщение об ошибке Сообщение об ошибке сообщение о ошибке Сообщение об ошибке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |