Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
#1

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

06.02.2011, 17:10. Просмотров 610. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста, что я делаю не так?
Задача такова - при вводе 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2011, 17:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает пароль при выборе Админа. (C++):

Почему при выборе switch у меня не работает вывод дерева на экран?! - C++
////////////////////////////////////////////////////// // // // Ñîçäàòü ïðîãðàììó äëÿ...

С++ ошибка при выборе ноля - C++
Добрый день,осваиваю с++ совсем недавно, вот дали задание сделать калькулятор вообщем то все работает,но когда ввожу второе число 0...

Ошибка при выборе типа данных - C++
Всем доброго времени суток, начал самостоятельно изучать плюсы и делать лабы из учебника Павловской и сразу столкнулся с проблемой. Написал...

Перезапустить программу при неверном выборе в swich - C++
подскажите как сделать при операторе switch вызов сase дальше...а не заново запускать программу. Вот моя программа: #include &lt;stdlib.h&gt;...

Движение точек при выборе пункта меню - C++
Здравствуйте! Как можно сделать так, как в этой программе, когда выбираешь первый пункт меню, а затем нажимаешь function one, чтобы так...

Runtime error при выборе одного из пунктов программы - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;malloc.h&gt; #include...

7
Ma3a
Эксперт С++
618 / 462 / 31
Регистрация: 28.01.2011
Сообщений: 605
06.02.2011, 17:25 #2
строчка p!="admin" означает, что сравниваются всего лишь указатели, а не сами строки, для этого используйте функцию strcmp
0
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
06.02.2011, 18:11  [ТС] #3
Пробывал и через strcmp тот же эффект...
0
Ma3a
Эксперт С++
618 / 462 / 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 , так лучше будет
0
Escapable
54 / 54 / 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;
}
0
Vladyc9
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 7
07.02.2011, 14:17  [ТС] #6
Ma3a, пробывал так , тоже не работает...
0
Escapable
54 / 54 / 1
Регистрация: 09.11.2010
Сообщений: 120
07.02.2011, 14:35 #7
Vladyc9, я привел вполне рабочий пример. Чем не устраивает?
0
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.
Цикл выбора значения несовсем корректен
0
07.02.2011, 14:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2011, 14:53
Привет! Вот еще темы с ответами:

косяк при выборе операции через switch в калькуляторе - C++
всем доброго времени суток. пишу тут курсач и столкнулся со следующей проблемой: в консоли само по себе вписывается значение 0 и программа...

При выборе авто не полностью выводит модель первого автомобиля - C++
Помогите понять ошибку. При выборе авто не полностью выводит модель первого автомобиля. Не могу сообразить в чем дело. #include...

Не вводится пароль при выборе пользователя - Windows XP
не вводится пароль при выборе пользователя: вообщем как будто клава не работает, тыкаю в поле для ввода пароля, а он не набирается...

Пароль Админа Windows - C#
Тема такая есть 200 компов в сети на которых установленны локальные пароли админов их хочеться проверять программным способом чтобы...


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

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

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