Я новичок в C ++. Это часть задания в школе.
Это часть входа в систему.
Мне нужно прочитать PIN-код из внешнего файла, который состоит из PIN-кода многих пользователей.
Мне нужно сравнить пин-код, который пользователь только что набрал, с пин-кодом, сохраненным в файле. Если пин-код совпадает, то пользователь успешно авторизован. Если нет, то у пользователя есть еще 2 попытки ввести PIN-код еще раз.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я не могу прочитать данные из других строк, кроме первой.
Когда я ввел PIN-код других строк, которые верны, программа всегда будет показывать мне неправильный PIN-код. Только если я наберу первую строку, он покажет правильный PIN-код.
Пожалуйста, помогите мне выяснить проблему. Спасибо.
069906
777329
143003
069021
void olduser ()
{
int userpin,a;
cout << "*************************************************************" <<
endl << endl;
input.open("userdata.txt");
cout << "Please enter your PIN." << endl;
cin>>userpin;
if(input.is_open())
{
while(input >> pin)
{
if(userpin == pin) //compare the pin typed in with the pin in file
{
cout << "You have entered the correct PIN." << endl <<endl;
cout << "You have successfully login." << endl <<endl;
cout << "Redirecting......" << endl;
system("pause");
break;
}
else if (userpin != pin)
{
for(a=1;a<=2;a++)
{
cout << "You have entered the wrong PIN." << endl;
cout << "Please try again." << endl;
cin >> userpin;
if(userpin == pin)
{
cout << "You have entered the correct PIN." << endl <<endl;
cout << "You have successfully login." << endl <<endl;
cout << "Redirecting......" << endl;
system("pause");
break;
}
}
system("cls");
cout << "The PIN you have entered has no match." <<endl <<endl;
cout << "Please try again later. Thank you." << endl << endl;
cout << "Exiting IVM......" << endl;
system("pause");
break;
}
}
}
else
{
cout << "Unable to open file." << endl;
}
}
int attempts = 0;
while (attempts < 3)
{
bool logged = false;
if (input.is_open())
{
while (input >> pin)
{
if (userpin == pin)
{
//if the PIN is found in the external file
cout << "You have successfully login." << endl << endl;
cout << "Redirecting to main menu......" << endl;
system("pause");
logged = true;
mainmenu();
}
}
}
else
{
//If the external file cannot be opened
cout << "Unable to open file." << endl;
break;
}
if(logged) break;
{
//if the PIN is not found in the external file
cout <<"The PIN is not matched. Please try again." << endl;
cin>>userpin;
}
attempts++;
}
if(attempts == 3)
{
//the login is unsuccessful after using up 2 attempts
cout <<"Your PIN is not matched. Please try again next time." <<endl
<< endl;
}