2014-01-08 80 views
0

嗨,我正在創建一個簡單的密碼程序。該程序要求用戶輸入一個帳號和密碼。下面的代碼工作正常,但我唯一的問題是經過3次不正確的嘗試,我希望程序終止一個適當的消息。我不知道如何讓循環停止3次不正確的嘗試後,希望有人能幫助我。從我收集的信息來看,我認爲我可能不得不使用for循環,但我似乎無法使其正常工作。謝謝!C++密碼程序計數循環

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 */