gpt4 book ai didi

c++ - 从文件中读取数据后 Bool 结果返回 false

转载 作者:行者123 更新时间:2023-11-28 05:11:54 25 4
gpt4 key购买 nike

我正在尝试学习有关 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

最佳答案

假设您真的想使用 int 作为密码,问题出在这个函数声明和定义中:

void getLogin(string & userName, int password);

password 参数更改为引用,类似于 userName 参数,一切都应该没问题。将声明更改为:

void getLogin(string & userName, int & password);

然后更改定义以匹配。

关于c++ - 从文件中读取数据后 Bool 结果返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com