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

Защита от ввода больших значений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Наибольшее значение в массиве http://www.cyberforum.ru/cpp-beginners/thread910904.html
Доброго всем времени суток. Нужно найти номер наибольшего из значений выражения e^(a/2)-a^2 среди элементов массива. Подскажете, пожалуйста, где накосячил. #pragma hdrstop #pragma argsused #include <tchar.h> #include <iostream> #include <conio.h> #include <stdlib.h>
C++ Дан номер телевизионного канала (от 1 до 5).Вывести на экран наиболее популярные программы заданного канала Дан номер телевизионного канала (от 1 до 5).Вывести на экран наиболее популярные программы заданного канала. http://www.cyberforum.ru/cpp-beginners/thread910886.html
C++ Как обойти оператор присваивания, или явное копирование указателя
Мой мозг взрывается. Есть оператор присваивания WEdge& WEdge::operator=(const WEdge &object) { if (this == &object) return *this; this->Ne=object.Ne; this->Ke=object.Ke; this->W=object.W; return *this; }
C++ Нужен теоретический материал!
Нужна теория по теме "использование функции как параметра другой функции". Помогите пожалуйста
C++ Заполнить вектор обьектами http://www.cyberforum.ru/cpp-beginners/thread910860.html
Проблема с решением, вот задание: Создать вектор и заполнить его не менее, чем двадцатью объектами класса Fish. Для заполнения вектора создать метод Factory, который будет создавать объекты класса Fish, выбирая названия рыб из специального массива и генерируя вес рыб случайным образом в интервале 0.2 – 20.0 кг включительно. Вот реализовать метод Factory не удается, как вытягивать имя рыб из...
C++ Как выполнять действие по истечению некоторого времени У меня в цикле while(1) выполняется программа, мне нужно чтобы к примеру каждые пять минут вызывалась функция. Основная программа должна работать постоянно. Как осуществить? подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
25.06.2013, 23:11     Защита от ввода больших значений
как-то так:
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
#include <string>
#include <limits>
#include <iostream>
 
int main()
{
 
  {
    //std::string inputStr;
    //std::cin >> inputStr;
    std::string inputStr = "1114294967296"; // чтобы не было наглядее.
    std::string maxUInt = std::to_string(std::numeric_limits<unsigned>::max());
    // тут еще надо проверять на то, что ввели только цифры
    // или более сложные проверки в случае наличия знаков
    // или еще какого-то специфического формата.
    // фокус в том, что во время этих проверок можно точно
    // определить, что именно неверно в веденной строке,
    // в отличае от случая проверок за счет того, что
    // поток ввода ломается, когда ожидается ввод числа,
    // а юзер вводит какие-то неправильные символы.
    if (inputStr.length() > maxUInt.length() || inputStr > maxUInt)
    {
      std::cout << "\ninputStr is to big." << std::endl;
      std::cout << "  inputStr = " << inputStr << std::endl;
      std::cout << "  maxUInt = " << maxUInt << std::endl;
    }
  }
 
  {
    //std::string inputStr;
    //std::cin >> inputStr;
    std::string inputStr = "12345"; // чтобы не было наглядее.
    std::string maxUInt = std::to_string(std::numeric_limits<unsigned>::max());
    if (inputStr.length() <= maxUInt.length() && inputStr <= maxUInt)
    {
      std::cout << "\ninputStr is ok." << std::endl;
      std::cout << "  inputStr = " << inputStr << std::endl;
      std::cout << "  maxUInt = " << maxUInt << std::endl;
    }
    // тут преобразовываем введенную строку в unsigned и делаем с этим чтото дальше.
  }
 
  return 0;
}
 
Текущее время: 17:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru