![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: -1 Всего: 0 |
Мне нужно сделать так, чтоб если я введу не число, чтоб выдало собственное исключение, чего-то данный код не срабатывает.
Получается в этмо коде, когда я ввожу число, выдаёт результат на экран всё нормально, когда же введу какие-то символы, выбрасывает консоль. Как сделать так, чтоб при вводе не числа, выдало исключение?
Это сообщение отредактировал(а) Golovastik - 18.12.2010, 21:23 |
|||
|
||||
Golovastik |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: -1 Всего: 0 |
Вот так сработало:
Расшифруйте, вот это место желательно ясно. Что здесь делается?
и вот это:
|
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: -1 Всего: 0 |
Хорошо, а как написать правильно?
|
|||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
Ввести строку, попытаться преобразовать её в число ( atoi ), при ошибке выдать исключение. см. тут: http://forum.vingrad.ru/forum/topic-317180.html
http://cplusplus.com/reference/std/memory/auto_ptr/
http://cplusplus.com/reference/iostream/ios/exceptions/ -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
cutwater |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
atoi не надежна и не может гарантировать корректное преобразование ибо
Поэтому для гарантированной проверки рекомендуется использовать boost::lexical_cast (Так же существует в стандартной библиотеке С семейство ф-ций strtol и компания. Они так же обеспечивают возможность корректной обработки ошибок) |
||||
|
|||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 21 Всего: 135 |
у них точно также
поэтому, я для себя давно написал ф-цию преобразования, которая сначала проверяет, что строка не состоит из всех нулей, а затем вызывает itoa. Вот её псевдокод
а вообще, согласен. Лучше использовать готовые решения из boost или из Qt -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |