Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 22
1

Проверка на ввод чисел

27.11.2017, 23:46. Показов 4423. Ответов 2
Метки нет (Все метки)

Здравствуйте. Мне стало интересно как примитивно можно сделать проверку на ввод чисел.
К примеру я предлагаю ввести некий числовой параметр.

C++
1
2
3
int a;
cin>>a;
...
И если пользователь введёт случайно/специально иной символ, то программа прерывается. Раньше я переделывал на тип чар и задавал условия ввода, но это работало лишь с положительными числами.

C++
1
2
3
4
5
6
7
8
int a;
char *b;
while(cin>>b)
if(*b>=48 && *b<=57){
  a=atoi(b);
  break;
}
...
Вопрос:"Как мне задать условия на отрицательные числа, чтобы можно было бы вводить и их программа принимала тоже или если без типа char, то как сделать, чтобы программа не крашилась после введёной буквы и предлагала повторный ввод?"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2017, 23:46
Ответы с готовыми решениями:

Проверка на ввод чисел
Нашел вот такой код для проверки ввода. Можете объяснить, как он работает? cout &lt;&lt;...

Ограничение на ввод чисел и проверка чисел
решить квадратное уравнение. Сделала задачу, а преподаватель сказал, что это слишком легко и...

Ввод массива чисел и проверка
Проблема проста до безобразия: надо ввести числа в массив int и на ходу проверить являются ли они...

Ввод чисел и проверка их делимости
Программа осуществляет ввод чисел и проверяет их делимость на 2 и 3. Сообщение о том, что введенное...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
2
431 / 423 / 159
Регистрация: 21.05.2016
Сообщений: 1,334
27.11.2017, 23:52 2
на стэковерфлоу решение нашел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<limits>
using namespace std;
int main()
{
 
    cout << "Enter an int: ";
    int x = 0;
    while(!(cin >> x)){
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        cout << "Invalid input.  Try again: ";
    }
}
1
0 / 0 / 0
Регистрация: 27.11.2017
Сообщений: 22
28.11.2017, 00:47  [ТС] 3
Спасибо, возьму на заметку.
а нету варианта как-то через условия задать используя банально if()?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2017, 00:47

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Проверка правильности ввода. Запретить ввод чисел
Здравствуйте форумчане! Хочу сделать в коде проверку типа: если вводить, где положено string ...

Ввод и проверка при вводе чисел в диалогах
Никаких проблем не возникает при вводе десятичных чисел. А вот с шестнадцатиричными как быть? Есть...

Ввод двух целых чисел и проверка этих чисел условиями
Задача в том, что нужно ввести два числа и проверить: если 1-е отрицательное и 2-е положительное то...

Ввод двух целых чисел и проверка этих чисел условиями
.486 ; create 32 bit code .model flat, stdcall ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.