我正在尝试了解有关C ++的更多信息,并获得了验证登录的任务。
到目前为止我已经
了#include <iostream>
#include <istream>
#include <fstream>
#include <string>
using namespace std;
void getLogin(string & userName, int password);
bool validateLogin(string userName, int password);
void showResult(bool validation);
int main()
{
int password = 0;
string userName;
bool validation;
getLogin(userName, password);
validation = validateLogin(userName, password);
showResult(validation);
return 0;
}
void getLogin(string & userName, int password)
{
cout << "Enter your ID: ";
cin >> userName;
cout << "Enter your PW: ";
cin >> password;
}
bool validateLogin(string userName, int password)
{
string user;
int pass;
ifstream inFile;
inFile.open("C:\\login.txt");
if (inFile.fail())
{
cout << "Error finding file";
exit(1);
}
getline(inFile, user);
inFile >> pass;
if (userName == user && password == pass)
{
return true;
}
else
{
return false;
}
}
void showResult(bool validation)
{
if (validation == true)
{
cout << "Valid\n\n";
}
else
{
cout << "Invalid\n\n";
}
}
在login.txt文件中,已经写入了用户名和密码。提示要求用户输入其用户名和密码。当我输入txt文件中的用户名和密码时,它始终显示为无效。 Link to output and login.txt
答案 0 :(得分:1)
假设您确实希望使用int
作为密码,问题出现在此函数声明和定义中:
void getLogin(string & userName, int password);
将password
参数更改为引用,类似于userName
参数,一切都应该没问题。将声明更改为:
void getLogin(string & userName, int & password);
然后更改定义以匹配。