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

Защита от дураков - C++

Восстановить пароль Регистрация
 
Delpix
delpix.ru
 Аватар для Delpix
19 / 19 / 1
Регистрация: 06.05.2011
Сообщений: 235
05.06.2011, 21:18     Защита от дураков #1
В функцию добавления, нужно добавить защиту от дураков:
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
void Newadd()
{
 
    Abbase z2;
    system ("cls");
    cout <<"Abbase 0.51 final"<<endl;
    cout <<"\n"<<endl;
    fstream fout("base.txt", ios::app);
    cout <<"Табельный номер:\n-> ";
    cin >>z2.number;
    cout<<"Фамилия:\n-> ";
    cin>>z2.family;
    cout <<"Имя:\n-> ";
    cin >>z2.f_name;
    cout <<"Отчество:\n-> ";
    cin >>z2.l_name;
    cout <<"Год рождения:\n-> ";
    cin >>z2.gr;
    cout <<"Введите общий бал ВНТ:\n-> ";
    cin >>z2.zno;
    cout<<"Введите номер телефона:\n-> ";
    cin>>z2.phone;
    cout <<"_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _"<<endl;
    cout <<"Абитуриент добавлен в базу данных."<<endl;
    cout <<"_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _"<<endl;
    fout<<endl<<z2.number<<" "<<z2.family<<" "<<z2.f_name<<" "<<z2.l_name<<" "<<z2.gr<<" "<<z2.zno<<" "<<z2.phone;
    fout.close();
    Navigation();           
}
Подскажите как это сделать, или ссылки киньте на полезные статьи.
P. S. Еще есть функция вывода на экран. Как в ней сделать проверку на пустоту файла, а то моя не особо работает.
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
void Open()
{
Abbase db;
system ("cls");
cout <<"Abbase 0.51 final"<<endl;
cout <<"\n"<<endl;
ifstream fin("base.txt", ios::in);
if (!fin)
        cout <<"База пуста!\n";
    else
    {
        int n=1; 
        cout <<"| # |Номер| Фамилия  |  Имя  |  Отчество  | Г/р  | ВНО |Моб. телефон|\n";
        cout <<"---------------------------------------------------------------------\n";
        while (!fin.eof())
        {
            
            fin>>db.number>>db.family>>db.f_name>>db.l_name>>db.gr>>db.zno>>db.phone;
            cout<<"| "<<n<<" | "<<db.number<<" | "<<db.family<<" | "<<db.f_name<<" | "<<db.l_name<<" | "<<db.gr<<" | "<<db.zno<<" | "<<"0"<<db.phone<<" |"<<endl;
            cout <<"---------------------------------------------------------------------\n";
            n++;
        }
        fin.close();
    }
    Navigation();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 21:18     Защита от дураков
Посмотрите здесь:

Защита ввода C++
Защита от дурака C++
C++ Защита от дурака
Защита от переполнения C++
защита от дурака C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kjahert
48 / 48 / 5
Регистрация: 08.04.2011
Сообщений: 124
05.06.2011, 21:23     Защита от дураков #2
Защита
Kastaneda
06.06.2011, 12:05
  #3

Не по теме:

Цитата Сообщение от kjahert Посмотреть сообщение
от туда:
C++
1
2
3
 if((buf[i]=='0')||(buf[i]=='1')||(buf[i]=='2')||(buf[i]=='3')||
            (buf[i]=='4')||(buf[i]=='5')||(buf[i]=='6')||
            (buf[i]=='7')||(buf[i]=='8')||(buf[i]=='9')){
а еслиб арабских цифр было не 10, я 100?

ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
06.06.2011, 12:06     Защита от дураков #4
песец. isdigit в руки вместо вот таких условий
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.06.2011, 13:59     Защита от дураков #5
Небольшая модернизация кода с того сайта
C++
1
2
3
4
5
bool init (const char * str){
    while (*str)
        if (!isdigit(*str++)) return false;
    return true;
}
silent_1991
06.06.2011, 14:02     Защита от дураков
  #6

Не по теме:

ForEveR, да хоть бы не isdigit, а

C++
1
if (buf[i] >= '0' && buf[i] <= '9')
тоже было бы нормально. Но такое... Чувак явно не слышал про ASCII-таблицу...

Yandex
Объявления
06.06.2011, 14:02     Защита от дураков
Ответ Создать тему
Опции темы

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