Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 16:29     Проверка на ввод числа #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
do 
    { 
        cin.clear(); 
        cin.sync(); 
        cout << "Введите N: ";
        cin>>N;
        if(cin.fail())
            cout<<"Неверный формат!\n";
        else if ( N <= 0 ) 
            cout << "N должно быть больше нуля!\n";
        else if ( N - (int) N>0 )
            cout << "N должно быть целым!\n";
        
        }while(cin.fail()||N<=0||N-(int)N>0);
Проверка не доделана.
Нужно чтобы при вводе N=7,8 программа написала,что нужно выбрать одно из введенных чисел и заново предложила ввести N.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 16:29     Проверка на ввод числа
Посмотрите здесь:

C++ Проверка на ввод C++
Проверка на ввод C++
Проверка на ввод символа C++
C++ Проверка на правильный ввод
Проверка числовой ли ввод C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 16:44     Проверка на ввод числа #2
с делением на 10 поизгаляйтесь

Добавлено через 4 минуты
вернее N умножается на 10, применяется операция %, в итоге раскладывается на 2 числа и прога просит ввести одно из них. так может быть?
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 16:52  [ТС]     Проверка на ввод числа #3
Я имею ввиду число-запятая-число,а не число-точка-число(ввод вещественных чисел).
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
13.01.2013, 16:56     Проверка на ввод числа #4
Nastya_Z, какой тип у переменной N? int, float, double?
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 16:59  [ТС]     Проверка на ввод числа #5
Double,но этот тип используется только для проверки является ли N целым числом.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 17:02     Проверка на ввод числа #6
при вводе через запятую компилятор может ошибку показать или это будет то же что и ввод через точку
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 17:04  [ТС]     Проверка на ввод числа #7
Он считывает только первое число.
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 17:17     Проверка на ввод числа #8
тогда подключайте строки и на вводе будет заполнятся строка, потом в строке искаться число
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
13.01.2013, 17:18     Проверка на ввод числа #9
Может как-то так сделать.
C++
1
2
3
4
5
6
7
8
9
10
double n, n2;
char chr;
 
cout << "Введите число: ";
cin >> n;
cin.get(chr);
if (chr == ',')
    cin >> n2;
 
cin.clear();
Т.е. прочитать первое число, запятую и следующее число (если была введена запятая)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 17:22     Проверка на ввод числа
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 17:22  [ТС]     Проверка на ввод числа #10
Цитата Сообщение от Дмитрий 93 Посмотреть сообщение
тогда подключайте строки и на вводе будет заполнятся строка, потом в строке искаться число
А можно как-нибудь проще сделать? Просто в данной задачи нужно обойтись без строк и "левых" функций(IsDigit(),IsAlpha()).

Добавлено через 2 минуты
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
Может как-то так сделать.
C++
1
2
3
4
5
6
7
8
9
10
double n, n2;
char chr;
 
cout << "Введите число: ";
cin >> n;
cin.get(chr);
if (chr == ',')
    cin >> n2;
 
cin.clear();
Т.е. прочитать первое число, запятую и следующее число (если была введена запятая)
Спасибо)
Yandex
Объявления
13.01.2013, 17:22     Проверка на ввод числа
Ответ Создать тему
Опции темы

Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru