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

Одним из вопросов, возникающих у новичков при попытках защитить программу от неправильного ввода данных, оказывается вопрос ввода только чисел. Во многих первых учебных задачах требуется ввод именно числовых значений. Над решением такой задачи можно поломать голову. Защита своей программы от потенциальных проблем — одна из обязательных истин любого программиста. Ведь если вы напишете программу, которая будет или работать странно, или раз через раз выдавать ошибки — мало какому пользователю понравится.
Одним из наиболее употребляемых способов обязательного ввода чисел может оказаться вот такой:

В некоторых случаях такой защиты от дурака достаточно.
Для решения этой задачи можно использовать ввод строки с последующим преобразованием строки в числовое значение. Строку удобно проверять на присутствие нехарактерных числам символов:

Этот способ лучше первого тем, что если ввести в число несколько, например, точек: 598.66.66 — то это будет считаться ошибкой, а в первом способе будет считаться, что было введено 598.66

Недостаток этого способа — это то, что приходится делать преобразования, а любые преобразования влияют на время работы программы. И ещё один недостаток — это не очень хорошая степень логичности. Это немного ненормально, что для того, чтобы ввести число, мы сначала вводим строку.

  • Для преобразования строки к числу в С используют или функцию atof (для дробного представления), или функцию atoi (для представления строки как целого число).
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

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

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

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

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

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

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




    0



    0

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

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

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/dzhek-natting/ios-6-sdk-razrabotka-prilozheniy-dlya-iphone-ipad-i-ipod-touch-8909997/?lfrom=15589587
Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Cидят двa aдминa нa рaботе, грустят, зaходит третий: - Че тaкие грустные? - Дa, вчерa пиво пили и пaроли меняли...

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

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