| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Использование исключений |
| Автор: Golovastik 18.12.2010, 21:20 | ||
| Мне нужно сделать так, чтоб если я введу не число, чтоб выдало собственное исключение, чего-то данный код не срабатывает. Получается в этмо коде, когда я ввожу число, выдаёт результат на экран всё нормально, когда же введу какие-то символы, выбрасывает консоль. Как сделать так, чтоб при вводе не числа, выдало исключение?
|
| Автор: Golovastik 18.12.2010, 22:59 | ||||||
Вот так сработало:
Расшифруйте, вот это место желательно ясно. Что здесь делается?
и вот это:
|
| Автор: boostcoder 19.12.2010, 00:50 |
здесь делается лишнее, ненужное действие |
| Автор: Golovastik 19.12.2010, 02:03 |
| Хорошо, а как написать правильно? |
| Автор: cutwater 19.12.2010, 13:10 | ||||
atoi не надежна и не может гарантировать корректное преобразование ибо
Поэтому для гарантированной проверки рекомендуется использовать boost::lexical_cast (Так же существует в стандартной библиотеке С семейство ф-ций strtol и компания. Они так же обеспечивают возможность корректной обработки ошибок) |
| Автор: borisbn 19.12.2010, 13:34 | ||||||
у них точно также
поэтому, я для себя давно написал ф-цию преобразования, которая сначала проверяет, что строка не состоит из всех нулей, а затем вызывает itoa. Вот её псевдокод
а вообще, согласен. Лучше использовать готовые решения из boost или из Qt |