C++ для начинающих. Ввод только чисел

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Один из вопросов, которые возникают при попытках защитит программу от неправильного ввода данных — это вопрос ввода только чисел. Часто для задачи требуется ввести именно числовое значение, будь это натуральное число или число с точкой. Над решением такой задачи иногда можно хорошо поломать голову. Но ведь если взялся за что-то, делай это хорошо, значит суметь защитить программу от недопустимого ввода данных — одна из первоначальных целей любого программиста. Действительно ведь, мало кому понравится, если ваше творение раз через раз будет выдавать ошибки во время работы или срабатывать как-то странно. Чтобы решить такую задачу в borland C++ 3.1 или например в консоли Visual Studio можно воспользоваться например таким кодом

Я буду вводить числа с точкой. Если нужно будет вводить натуральное число, нужно будет изменить логические условия в проверке и вместо atof использовать atoi

Такой не замысловатый пример иногда может быть очень полезен. Смысл тут в том, что формируется строка только из желаемых нами символов, после чего эта строка преобразуется в числовое значение. Не нужно забывать, что любое число прежде всего самая обычная строка, состоящая из набора обычных символов. Символ — он и есть символ.

А полученное нами число можно использовать как самое обычное числовое значение.

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Один комментарий: C++ для начинающих. Ввод только чисел

  • Иван Иванов говорит:

    Гарантировать ввод числа (например, float) можно ещё так:

    Автор сайта отвечает
    Разница между кодом показанным в статье и кодом, показанным вами, в том, что код из статьи просто не даст вводить то, что к части числа не относится. Ваш код позволит вводить число с частью не относящейся к построению числа отбрасывая все, что за этой частью.

    Точнее если ввести 5ааа5ааа
    ваш код сохранит в переменную 5
    код из сайта сохранит в переменную 55

    тут подкорректирован для mingw

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     
Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

-Папа, а что такое "высшее образование"? -Это то, что в 80-х годах прошлого века называлось "среднее"..

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок