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

Проверка вводимых данных на соответствие типа

06.03.2015, 22:36. Показов 1954. Ответов 3
Метки нет (Все метки)

Задание само очень простое - вычитание матриц, с помощью перегрузки функций (одна функция вычитает типы short, другая long double).
Проблема такая: как можно проверить, что вводимые данные не какие-либо символы и тд, а именно число типа short, я сделал так, чтобы нельзя было ввести числа вне диапазона short (с помощью SHRT_MAX и MIN), а что делать если вводятся символы, например 51sadasd, символы же идут дальше по потоку ввода и делают грязь.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2015, 22:36
Ответы с готовыми решениями:

Проверка типа вводимых данных.
Собственно,как осуществить ? К примеру,здесь: int main() { int x; int y; ...

Анализ вводимых данных на соответствие типу int
Доброго времени суток. Упёрся в стену.... Помогите реализовать проверку с консоли вводимых...

Проверка вводимых данных
Как сделать так, чтобы при вводе символов в строку года поступления на экран появлялось...

Проверка вводимых данных
Вот часть программы int main(void) { int vop; setlocale(LC_ALL, "Russian"); int mas1,...

3
1453 / 790 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.03.2015, 22:42 2
Куда вводиш символы, в переменную какого типа?
0
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 34
06.03.2015, 22:54  [ТС] 3
Я жду ваших предложений как раз) Мне предлагали в строку, потом перевести её в short из string .. но по заданию нельзя использовать исключения и я не знаю как без них реализовать
0
1453 / 790 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.03.2015, 23:19 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <string>
#include <algorithm>
#include <stdexcept>
 
int main()
{
   while (true)
   {
      std::cout << "Enter number: -> ";
      std::string number;
      std::cin >> number;
 
      if (std::any_of(number.begin(), number.end(), isalpha) ||
          std::count(number.begin(), number.end(), '.') > 1  ||
          number.find(',') != std::string::npos)
      {
         std::cout << "BAD INPUT.\n";
         continue;
      }
 
      if (number.find('.') != std::string::npos) {
         std::cout << "Floating type:   ";
         try {
            long double ldval = std::stold(number);
            std::cout << ldval << "\n";
         }
         catch(const std::invalid_argument& e) {
            std::cerr << "Invalid argument. " << e.what() << "\n";
         }
      }
      else {
         std::cout << "Integer type:    ";
         try {
            long long llval = std::stoll(number);
            std::cout << llval << "\n";
         }
         catch(const std::out_of_range& e) {
            std::cerr << "Out of the range. " << e.what() << "\n";
         }
         catch(const std::invalid_argument& e) {
            std::cerr << "Invalid argument. " << e.what() << "\n";
         }
      }
   }
 
   return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2015, 23:19

Проверка вводимых данных
Подскажите, пожалуйста, как зациклить ввод данных до тех пор пока пользователь не введёт корректный...

Проверка вводимых данных
Доброго времени суток, форумчане. Я столкнулся с такой проблемой: при введении еденицы измерения,...

Проверка вводимых данных
#include &lt;iostream&gt; using namespace std; int main() { double a, b, c; cout &lt;&lt;...

Проверка вводимых данных.
предполагается, что функция будет проверять, что ввел пользователь, и, если он ввел не натуральное...


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

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

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