2014-01-08 2 views
0

Привет Я создаю простую программу для пароля. Программа требует, чтобы пользователь вводил номер учетной записи и пароль. Следующий код работает отлично, но единственная проблема, с которой я столкнулся, - это после 3 неправильных попыток, которые я хочу, чтобы программа завершилась с соответствующим сообщением. Я не могу понять, как заставить цикл остановиться после трех неправильных попыток и надеялся, что кто-то сможет мне помочь. Из того, что я собрал, я думаю, что мне, возможно, придется использовать цикл for, но я просто не могу заставить его работать исправно. Благодаря!счетные циклы в программе C++ password

int A; 
    string guess; 
    const string pass; 
    const int number; 

cout << "Please Enter Account Number:" << endl; 
cin >> A; 
cout << "Enter Password Account Password:"<< endl; 
cin >>guess; 

    while(A!=number || guess!=pass) 
    { 
cout<<"Incorrect password. Try again"<<endl; 
cout << "Please Enter Account Number:" << endl; 
cin >> A; 
cout << "Enter Password Account Password:"<< endl; 
cin >>guess; 
    } 
+0

номер и передача не инициализируются в вашем коде. – UmNyobe

ответ

0
int attempts = 0; 
while(A!=number || guess!=pass) 
{ 
    if(attempts++ == 3) 
    { 
     cout << "Tough luck; exitting ..." << endl; 
     break; 
    } 
    cout<<"Incorrect password. Try again"<<endl; 
    cout << "Please Enter Account Number:" << endl; 
    cin >> A; 
    cout << "Enter Password Account Password:"<< endl; 
    cin >>guess; 
} 
+0

Спасибо, что это сработало отлично! – user3057816

3

Как насчет:

for (int counter = 0; counter < 2 && (A != number || guess != pass); ++counter) 
{ 
    ... 
} 
+0

избили меня :) +1 – Mike

+0

Согласен. Хотя должен быть какой-то способ определить, был ли введен правильный пароль или нет. –

0
int A; 
    string guess; 
    const string pass = /* some value */; 
    const int number = /* some value */; 

cout << "Please Enter Account Number:" << endl; 
cin >> A; 
cout << "Enter Password Account Password:"<< endl; 
cin >>guess; 

int i = 0; 
const int MAX_ATTEMPT = 3; 
bool success; 

    while((success = (A!=number || guess!=pass)) && (++i < MAX_ATTEMPT)) 
    { 
cout<<"Incorrect password. Try again"<<endl; 
cout << "Please Enter Account Number:" << endl; 
cin >> A; 
cout << "Enter Password Account Password:"<< endl; 
cin >>guess; 
    } 

if (success) /* other stuff */