我一直在尝试创建一个登录界面,在该界面中,用户首先将一些用户名,密码,地址和电子邮件之类的数据注册到系统中,然后将“-”用作数据之间的分叉形式,然后将它们存储在文本文件中。下面。
然后使用下面的代码尝试在文本中查找用户名和密码,但它只能提取第一行,而不能提取第二行
void login()
{
string User, Pass, ConfirmUser, ConfirmPass;
cout << "Please Enter Your Name And Password to Login:\n";
<< "Username: ";
getline(cin, User);
cout << "Password: ";
getline(cin, Pass);
ifstream input("database.txt");
while (input)
{
getline(input, u, '-');
getline(input, p, '-');
if (u == user && p == pass) {
authenticated = true;
system("cls");
}
input.close();
}
if (authenticated)
{
cout << "\nHello " << user << "\nLogin Sucsses!";
cin.get();
cin.get();
}
else
{
cout << "\nLogin Failed!\nPlease Check your Username and Password Again!";
main();
}
}
[我需要做些什么来使代码不仅检查文本的第一行,而且还要检查所有文本文件,因为我将添加更多用户?
在您的while (input)
循环中,您有一个input.close()
。