Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
#1

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

13.01.2013, 16:29. Просмотров 1573. Ответов 9
Метки нет (Все метки)

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.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2013, 16:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверка на ввод числа (C++):

Проверка на ввод числа - C++
Приветствую! Ребят возникла такая проблемка, я новичок и очень много ещё не знаю, прежде я конечно покопался здесь, но ответа не нашел. Так...

Проверка на корректный ввод числа - C++
Вводится число, если оно введено верно, нужно вывести hello world это количество раз, а если введено что-либо другое, то вывести Error. ...

Проверка на корректный ввод числа - C++
Мне нужно вывести hello world то количество раз, какое напишет пользователь, но если введено что-то кроме чисел, надо вывести error. В моем...

Проверка на ввод C++ - C++
алгоритм-1: 1)ввод x (например 1) 2)вывод y 3)расчет заново (y/n) (работает) алгоритм -2: 1) ввод x (например 1) 2) вывод...

Проверка на ввод - C++
в borland С нужно осуществить проверку на ввод, пользователь дожлен ввести число, как проверить ввел позльзователь число или что то другое

Проверка на ввод - C++
Есть переменная целочисельная ввожу ее с клавиатуры , но когда ввожу букву нажимаю enter вываливает ексепшын. Нашел функцию isdigit ,...

9
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 16:44 #2
с делением на 10 поизгаляйтесь

Добавлено через 4 минуты
вернее N умножается на 10, применяется операция %, в итоге раскладывается на 2 числа и прога просит ввести одно из них. так может быть?
0
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 16:52  [ТС] #3
Я имею ввиду число-запятая-число,а не число-точка-число(ввод вещественных чисел).
0
v.a.l.i.d
416 / 381 / 10
Регистрация: 21.09.2012
Сообщений: 913
13.01.2013, 16:56 #4
Nastya_Z, какой тип у переменной N? int, float, double?
0
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 16:59  [ТС] #5
Double,но этот тип используется только для проверки является ли N целым числом.
0
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 17:02 #6
при вводе через запятую компилятор может ошибку показать или это будет то же что и ввод через точку
0
Nastya_Z
0 / 0 / 0
Регистрация: 13.01.2013
Сообщений: 5
13.01.2013, 17:04  [ТС] #7
Он считывает только первое число.
0
Дмитрий 93
74 / 59 / 5
Регистрация: 03.06.2011
Сообщений: 309
13.01.2013, 17:17 #8
тогда подключайте строки и на вводе будет заполнятся строка, потом в строке искаться число
0
v.a.l.i.d
416 / 381 / 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();
Т.е. прочитать первое число, запятую и следующее число (если была введена запятая)
0
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();
Т.е. прочитать первое число, запятую и следующее число (если была введена запятая)
Спасибо)
0
13.01.2013, 17:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2013, 17:22
Привет! Вот еще темы с ответами:

Проверка на ввод данных - C++
В интернете немогу найти примера кода на проверку вводимых данных. Можите написать простинький пример к примеру такой: if...

Проверка на ввод символа - C++
Предположим вместо числа был введен символ, тогда после ввода символа пропускается вторая строчка cin&gt;&gt;b; и далее заного перезапускается...

Проверка на ввод строки - C++
Вводим строку (имя). Если в строке есть число, то вывести определённое сообщение. void enterDoc(Doctor *pdoctor, int i) { ...

Проверка на ввод букв - C++
В общем такая проблемка Задача: сделать программу для расчета периметра, площади, медианы, бисектрисы и высоты. # include &lt;stdio.h&gt;; ...


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

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

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