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

Проверка допустимости введенного числа - C++

Восстановить пароль Регистрация
 
DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
28.03.2014, 14:45     Проверка допустимости введенного числа #1
Помогите сделать числовой парсинг в котором пользователь вводит число , должна производится проверка допустимого числа.Если число быот допустимым программа выводит число на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
28.03.2014, 14:49     Проверка допустимости введенного числа #2
Безопасный ввод через шаблон
DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
28.03.2014, 15:01  [ТС]     Проверка допустимости введенного числа #3
SatanaXIII, думаю это не много не то, мне нужно что бы цикл перебрал данные которые введет пользователь и что бы эти числа выводила программа.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
28.03.2014, 16:37     Проверка допустимости введенного числа #4
Что то такое?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <stdexcept>
 
int main()
{
   std::string input;
   while (true) {
      try {
         std::cout << "Enter number: ->";
         std::cin >> input;
         long long number = std::stoll(input);
         std::cout << "Your number is " << number << "\n";
      }
      catch(std::invalid_argument& e) {
         std::cerr << "invalid_argument\n";
      }
      catch(std::out_of_range& e) {
         std::cerr << "out_of_range\n";
      }
   }
   return 0;
}
DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
28.03.2014, 17:17  [ТС]     Проверка допустимости введенного числа #5
DiffEreD, вы будете смеятся, но у меня проблемка, я испльзую с4Droid и он выдает ошибку, возможности взят другую IDE у меня нет к велечайшему сожалению. Сейчас скину скрин ошибки.
Миниатюры
Проверка допустимости введенного числа  
DiffEreD
28.03.2014, 17:23
  #6

Не по теме:

Походу не включена или не поддерживается С++11

DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
29.03.2014, 16:56  [ТС]     Проверка допустимости введенного числа #7
Компилятор у меня G++ +Bionic, есть еще GCC + Bionic и TCC и uClibs

Добавлено через 23 часа 26 минут
Такой вопрос - как сделать ограничение на цифры и буквы? Допустим разрешины "1, 2, 7,9" буквы мы не можем писать, но когда мы в строке напишем "qwefbgfs463792ks65123" то мы получим "79212"?
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
29.03.2014, 17:01     Проверка допустимости введенного числа #8
Цитата Сообщение от DoOj Посмотреть сообщение
Такой вопрос - как сделать ограничение на цифры и буквы? Допустим разрешины "1, 2, 7,9" буквы мы не можем писать, но когда мы в строке напишем "qwefbgfs463792ks65123" то мы получим "79212"?
Попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//#include <conio.h>
#include <iostream>
using namespace std;
 
int main()
{
cout << "Enter the number: " << endl;
double i;
cin >> i;
while (!i || cin.peek() != '\n')
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error! Retry input\n";
    cout << "Enter the number: " << endl;
}
 
return 0;
}
DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
29.03.2014, 21:22  [ТС]     Проверка допустимости введенного числа #9
помогите пожалуфста, я не пойму где у вас стоит ограничение на буквы?
Или вы используете переменную int? По этому мы получаем сообщение об ошибке?
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
29.03.2014, 22:47     Проверка допустимости введенного числа #10
Ограничения на символы так точнее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
cout << "Enter the number: " << endl;
double i;//может быть int
cin >> i;//Ввод
while (!i || cin.peek() != '\n')//если число или символ конца строки выводим  i
{
    cin.clear();
    while (cin.get() != '\n');//если другой символ
    cout << "Error! Retry input\n";
    cout << "Enter the number: " << endl;
}
 
return 0;
}
Будет понятнее если посмотрите
http://www.itmathrepetitor.ru/s-lekc...-potokami-v-s/
DoOj
3 / 3 / 0
Регистрация: 28.03.2014
Сообщений: 38
29.03.2014, 23:11  [ТС]     Проверка допустимости введенного числа #11
Genn55, спасибо! Но опять таки, если мы пишем буквы - то он постоянно выдает ошибку. Как задать определенныые цыфы?
"!=" - это символ "Не равно"?
И можно я поноглею, обьясните мне синтаксис функции While().
По этому поводу мне известно что while имеет условие и оператор.
то есть while(условие)оператор.
Помогите мне пожалуйста. Просто я знаю банальные языки HTML/CSS/PHP(чайник) и синтаксис Логических перемен мне трудно понимаеться.
Чем они могут отличатся? На пример for; if; while; else?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 23:45     Проверка допустимости введенного числа
Еще ссылки по теме:

Ввод и проверка правильности введенного пароля C++
Проверка невхождения введенного числа в диапазон от 0 до 5 C++
Проверка сортировки введенного с клавиатуры массива C++

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

Или воспользуйтесь поиском по форуму:
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
29.03.2014, 23:45     Проверка допустимости введенного числа #12
Эта программа разрешает ввод только цифр.
Да "!=" - это символ "Не равно"
While(). В скобочках пишем условие выхода из цикла
C++
1
2
3
4
5
int k;
While(k != -1)//условие выхода из цикла,если введем -1 цикл завершится
{
//тело цикла что то делает
}
C++
1
2
3
4
for (int i = 0; i < 10; i++)//будет продолжаться 10 раз
{
//тело цикла что то делает
}
if,else операторы ветвления
C++
1
2
3
4
5
6
int a;
cin >> a;
if ( a != 5)//если а не равно 5 
cout >>" yes\n";
else//иначе
cout >> " no\n";
если вы хотите разрешить ввод определенных чисел или букв то вам следует использовать цепочку if,else и почитайте циклы и операторы ветвления.
Yandex
Объявления
29.03.2014, 23:45     Проверка допустимости введенного числа
Ответ Создать тему
Опции темы

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