我正在做一个程序,它会提示用户使用他们的用户名和密码登录。我有一个包含用户名和密码列表的文本文件(userandpassword.txt)。所以发生的事情是,用户输入他们的用户名和密码,他们的输入将与文本文件中的用户名和密码匹配。如果匹配,他们可以登录,如果不匹配,它将打印出“无效的用户名或密码”。下面是我所拥有的。
文本文件(用户名和密码.txt)
john abcd
mary efgh
jane ijkl
我的代码
string line = " ";
ifstream readFile("userandpassword.txt");
string UserName;
string Password;
string _UserName;
string _Password;
cout << "Enter UserName: ";
cin >> UserName;
cout << "Enter Password: ";
cin >> Password;
while (getline(readFile,line)) {
stringstream iss(line);
iss >> _UserName >> _Password;
if (UserName == _UserName && Password == _Password) {
cout << "Login Successfully!"<< endl;
}
else {
cout << "InValid UserName And Password"<< endl;
}
}
问题是如果我输入用户名:john 和密码:abcd 它将返回我的输出,如下所示
Login Successfully!
InValid UserName And Password
InValid UserName And Password
而如果我输入用户名:mary 和密码:efgh,它将返回我,如下所示
InValid UserName And Password
Login Successfully!
InValid UserName And Password
最后用户名:jane 和密码:ijkl
InValid UserName And Password
InValid UserName And Password
Login Successfully!
但这不是我想要的结果,我想要的是它逐行读取文件中的用户名和密码,如果与用户的输入匹配,它只会输出“登录成功”,如果没有,同样如此match ,它只会打印出“无效的用户名和密码”。
例如
如果我输入用户名:mary 和密码:efgh,我的预期输出
Login Successfully!
如果我输入任何无效的用户名和密码,我的预期输出
Invalid Username and password.
关于我应该如何实现预期输出的任何想法或建议?谢谢