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

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

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

Проверка введенных данных в С++ - C++

10.11.2013, 22:45. Просмотров 382. Ответов 5
Метки нет (Все метки)

Задача такова:
Имеется программа для работы с числами (пусть это будет, например, поднесение числа в квадрат, не суть)
Соответственно, от пользователя требуется ввести число.
Но пользователь иногда не очень сообразителен и вводит букву.
Итог: программа выдает ошибку и закрывается, пользователь в ужасе, программист получил по башке.

Как предупредить это?
Например, если пользователь вводит букву, то пусть программа, вместо того, чтобы выводить ошибку или еще чего похуже, говорит ему, что "Это, дескать, не число, попробуй еще раз" и снова просит пользователя ввести данные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверка введенных данных в С++ (C++):

Проверка введенных данных - C++
Всем привет! Подскажите пожалуйста, каким образом можно проверить веденные данные при запросе цифр? То есть нужно проигнорить если...

Проверка введенных данных - C++
Доброго времени суток. Есть программа по переводу чисел из одной системы счисления в другую. Как сделать проверку введеннвх дпнных на...

Проверка на корректность введенных данных - C++
дана задача ввести номер телефона пробел и дата в формате день. месяц. год. Выполнить простейшую проверку на корректность введенных данных....

Проверка корректности введенных данных - C++
Всем привет. Есть задача: Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц...

Проверка введенных данных cin на корректность - C++
Вот кусок кода : input1 : cout<<"Введите количество животных которые когда либо жили у вас : "; cin>>amountPats; if (!cin) { ...

Проверка введенных данных (как ограничить?) - C++
Возник вопрос. Сделал такую проверку введенного пароля. Как ограничить количество возможных попыток до, например, трех раз? #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
newbie666
Заблокирован
10.11.2013, 22:47 #2
проверяй isdigit число это или нет и делай соответствующие действия
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.11.2013, 22:52 #3
C++
1
2
3
4
5
6
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
Snowyda
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 2
10.11.2013, 22:53  [ТС] #4
Цитата Сообщение от newbie666 Посмотреть сообщение
проверяй isdigit число это или нет и делай соответствующие действия
Если я правильно понял то, что было написано в литературе на эту тему, то вначале придется вводить данные в виде char. Или это не так? Если нет и если вам не трудно, приведите пример использования этой функции в простенькой программе, пожалуйста.
newbie666
Заблокирован
10.11.2013, 22:57 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <ctype.h>
#include <stdio.h>
 
int main(void)
{
  char ch;
 
  for(;;) {
    ch = getchar();
    if(ch == '.') break;
    if(isdigit(ch)) printf("%c является цифрой\n", ch);
  }
 
  return 0;
}
rome098
3 / 3 / 0
Регистрация: 04.11.2013
Сообщений: 46
10.11.2013, 23:02 #6
Цитата Сообщение от Snowyda Посмотреть сообщение
Если я правильно понял то, что было написано в литературе на эту тему, то вначале придется вводить данные в виде char. Или это не так? Если нет и если вам не трудно, приведите пример использования этой функции в простенькой программе, пожалуйста.
C++
1
2
3
4
5
6
7
8
9
10
11
char str[N], *p=str;//временная переменная для проверки знака сравнения и числа, где N- максимальное кол-во букв
start://маркер
cin >> str;//записываем в строку для проверки
 while(*p)
                if(!isdigit(*p++))
                {
                  if_num=false;
                  break;
                         }
            if(if_num){a=atoi(str);}
            else{cout << "Это не число!"; goto start;}
я описал все, что мог... дальше я сам не очень понимаю, но пример работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2013, 23:02
Привет! Вот еще темы с ответами:

Проверка введенных данных; выполнение кода по условию - C++
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; int _tmain(int argc, _TCHAR* argv) { float a, b, c, x, res; ...

Проверка введенных данных: число/не число - C++
проходим try catch throw в универе. взял стаааааарую прогу и в нее вкладываю проверки введенных данных посредством try catch throw но у...

Проверка введенных символов - C++
Привет. Мне нужно сделать переводчик с руского на английский и с английского на руский. У меня есть база с словами и переводами к ним...

Проверка корректности введенных строк - C++
Программа выдает, что все введенные элементы некорректные... Что тут не так. (код не мой) Помогите с этим разобраться, или залейте свой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.11.2013, 23:02
Ответ Создать тему
Опции темы

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