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

как поставить защиту от дураков?

14.09.2013, 17:52. Просмотров 619. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <math.h>
#include <clocale>
#include <iostream>
using namespace std;
 
 
int main ()
{
    setlocale(LC_ALL, "Russian");
     double grad=0,rez=0, rad=0;
     const double PI = 3.1415;
           cout << "Введите значение в градусах: \n";
           cin >> grad; 
           rad=(grad*PI)/180; //Программа переводит значение записаное в градсах в радианы
         rez=pow(cos(rad),2); //Возведение в квадрат
         cout <<  rez << endl; 
   system ("pause");
 return 0;
}
Нужно сделать защиту от "дураков", не знаю как реализовать,
когда пользователь вводит букву или что то еще кроме цифр, надо чтоб прога выдавала ошибку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.09.2013, 17:52
Ответы с готовыми решениями:

Как сделать защиту от дураков
Здравствуйте, подскажите как сделать защиту от дураков? Есть DBGrid в нем есть поле номер. Номер...

Как поставить защиту на папки?
Всем привет! В общем например когда заходишь на www.site.ru/content/ у меня отображаюстя все файлы...

Как поставить защиту на админку?
Привет. у последний учебный год и стал вопроса диплома и я выбрал тему Создать сайт на собственном...

Как поставить ключ на программу и установить защиту от копирования?
Приветствую Всех Друзья! Не особо силен в программирование, ищу программу который установит ключ и...

7
328 / 327 / 92
Регистрация: 16.12.2012
Сообщений: 544
14.09.2013, 17:58 2
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
#include <math.h>
#include <clocale>
#include <iostream>
using namespace std;
 
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    double grad=0,rez=0, rad=0;
    const double PI = 3.1415;
    cout << "Введите значение в градусах: \n";
    while (true) {
        cin >> grad; 
        if (!cin) {
            cout << "Введите число!" << endl;
            cin.sync();
            cin.clear();
        }
        else break;
    }
    rad=(grad*PI)/180; //Программа переводит значение записаное в градсах в радианы
    rez=pow(cos(rad),2); //Возведение в квадрат
    cout <<  rez << endl; 
    system ("pause");
    return 0;
}
1
136 / 128 / 59
Регистрация: 13.12.2012
Сообщений: 293
14.09.2013, 17:58 3
C++
1
2
3
4
5
6
if (!(cin >> grad))
    {
        cout<<"Error";
        fflush(stdin);
        cin.clear();
    }
0
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 15
14.09.2013, 18:07  [ТС] 4
Спасибо
А если пользователь введет так: 54рпкгрпш,
или так: 5,,4

Добавлено через 3 минуты
Спасибо
А если пользователь введет так: 54рпкгрпш,
или так: 5,,4
0
136 / 128 / 59
Регистрация: 13.12.2012
Сообщений: 293
14.09.2013, 18:09 5
Тогда так
C++
1
2
3
4
5
6
if (!(cin >> grad))
    {
        cout<<"Error";
        cin.clear();
    }
    fflush(stdin);
И в результате получится число, которое до первой буквы
0
Заблокирован
Автор FAQ
14.09.2013, 18:36 6
Праздник, всё давным давно воплощено
Безопасный ввод через функцию-шаблон
0
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 58
15.09.2013, 01:06 7
Праздник
Писал давненько такую штуку для себя:
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
int vvodsogr(int dl=6, int ot=0, int do_=-1);
int CharToInt(char* mas);
 
int main()
{
    vvodsogr();
    return 0;
}
 
int CharToInt(char* mas)
{
    int x=0;
    for(; *mas!=0; )
    {   x*=10;
        x+=(*mas-48);
        mas++;
    }
    return x;
}
 
int vvodsogr(int dl, int ot, int do_)
{
    int i;
    char vv0d[80]="\0";
    fflush(stdin);
    fgets(vv0d, sizeof(vv0d), stdin);
    for(i=0; (unsigned)i<strlen(vv0d); i++) {if(vv0d[i]=='\n') vv0d[i]=0;}
    
    if(vv0d[0]==0) return -1;
    for(i=0; vv0d[i]!=0; i++)
    {
        if(int(vv0d[i]-48)<0 || int(vv0d[i]-48)>9 || i==dl) return -1;
    }
    if( (CharToInt(vv0d)<ot && ot!=0) ||
        (CharToInt(vv0d)>do_ && do_!=-1) ) return -1;
    else return CharToInt(vv0d);
}

Функция vvodsogr() возвращает введённое число либо -1, если это не число. Первый параметр - максимальная длина числа, остальные два - не помню
Да, и работает только с положительными числами.
0
What a waste!
1579 / 1279 / 172
Регистрация: 21.04.2012
Сообщений: 2,683
15.09.2013, 02:21 8
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
fflush(stdin);
Нельзя так с потоками ввода, вызывает неопределённое поведение.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2013, 02:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как поставить защиту на диск,чтобы нельзя было его скинуть
Скажите пожалуйста как сделать так,чтобы скинуть на диск прогу,а затем установить защиту

Не могу поставить защиту на данные
Возникла такая проблема, когда заходим от админа, на редактирование копируем адресную строку,...

Помогите поставить защиту на программу
Мне на программу нужно поставить &quot;защиту от дурака&quot;. То есть, пользователю нужно ввести число, а...

Поставить защиту на файл через htaccess
Здравствуйте! ситуация такая. хочу поставить защиту на файл с помощью .htaccess и .htpasswd....


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

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

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