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

Не работает пароль при выборе Админа. - C++

Восстановить пароль Регистрация
 
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
06.02.2011, 17:10     Не работает пароль при выборе Админа. #1
Помогите пожалуйста, что я делаю не так?
Задача такова - при вводе 1- я должен зайти как админ и ввести пароль, при вводе 2 - вхожу как оператор без пароля . Проблема в том, что при вводе пароля любая комбинация даже верная приводит к тому,что программа выдает "Не верный пароль".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int user(){
int m;
char p[5];
 
while(m!=1 && m!=2){
cout<<"Vvedite 1 - Admin, 2 - Operator\n";
cin>>m;}
 
if(m == 1)
admin=true;
else admin=false;
 
if( m == 1){
cout<<"Enter password\n";
while(p!= "admin"){
cin>>p;
if(p!="admin")
cout<<"Wrong password!\n";
user();
}}
return 0;}
P.S Кодирую в С++ Builder 6
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 17:25     Не работает пароль при выборе Админа. #2
строчка p!="admin" означает, что сравниваются всего лишь указатели, а не сами строки, для этого используйте функцию strcmp
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
06.02.2011, 18:11  [ТС]     Не работает пароль при выборе Админа. #3
Пробывал и через strcmp тот же эффект...
Ma3a
Эксперт C++
612 / 456 / 31
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 18:38     Не работает пароль при выборе Админа. #4
сравниваете строки через strcmp

C++
1
2
if(strcmp(p,admin) != 0)
    cout << "Wrong password";
а вводить строку нужно не как cin >> p; а тоже соответствующими функциями, например

C++
1
gets(p);
А вообще, пользуйтесь std::string , так лучше будет
Escapable
53 / 53 / 1
Регистрация: 09.11.2010
Сообщений: 120
06.02.2011, 19:08     Не работает пароль при выборе Админа. #5
Как
вариант
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str;
    string pass;
 
    cout << "Who are you? ('q' - to exit)" << endl;
    cout << "1. Admin" << endl; 
    cout << "2. Operator" << endl;
    
 
    while(cin >> str)
    {
        if(str == "1") 
        {
            cout << "Enter password: ";
            cin >> pass;
            if(pass == "admin") cout << "Password is correct. Welcome!" << endl;
            else 
            {
                cout << "Wrong! Excess denied." << endl;
                break;
            }
                
        }
        else if(str == "2") cout << "Hello user!" << endl;
        else if(str == "q") break;
    }
 
return 0;
}
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
07.02.2011, 14:17  [ТС]     Не работает пароль при выборе Админа. #6
Ma3a, пробывал так , тоже не работает...
Escapable
53 / 53 / 1
Регистрация: 09.11.2010
Сообщений: 120
07.02.2011, 14:35     Не работает пароль при выборе Админа. #7
Vladyc9, я привел вполне рабочий пример. Чем не устраивает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2011, 14:53     Не работает пароль при выборе Админа.
Еще ссылки по теме:

косяк при выборе операции через switch в калькуляторе C++
C++ Перезапустить программу при неверном выборе в swich
C++ Runtime error при выборе одного из пунктов программы

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

Или воспользуйтесь поиском по форуму:
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
07.02.2011, 14:53     Не работает пароль при выборе Админа. #8
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
int main ()
{
    int m;
    string p;
    do
    {
        cout<<"Vvedite 1 - Admin, 2 - Operator\n";
        cin>>m;
    }
    while(m!=1 && m!=2);
    //if(m == 1)
    //  admin=true;
    //else 
    //  admin=false;     
    if( m == 1)
    {
        cout<<"Enter password\n";
        cin>>p;
        if(p!="admin")
            cout<<"Wrong password!\n";
        //user();   
    }
    return 0;
}
Сделайте p типа string.
Цикл выбора значения несовсем корректен
Yandex
Объявления
07.02.2011, 14:53     Не работает пароль при выборе Админа.
Ответ Создать тему
Опции темы

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