c++多用户文件密码登录代码
时间: 2023-12-12 12:03:23 浏览: 48
以下是一个使用C++编写的简单多用户文件密码登录程序示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 定义用户结构体
struct User {
string username;
string password;
};
// 定义用户数据库类
class UserDatabase {
public:
// 构造函数
UserDatabase(const string& filename) : m_filename(filename) {
// 读取用户数据文件
ifstream infile(m_filename);
if (!infile) {
cerr << "Error opening file " << m_filename << endl;
exit(1);
}
// 解析文件内容,构建用户数据库
string username, password;
while (infile >> username >> password) {
m_users.push_back({username, password});
}
}
// 验证用户信息
bool authenticate(const string& username, const string& password) const {
for (const auto& user : m_users) {
if (user.username == username && user.password == password) {
return true;
}
}
return false;
}
private:
string m_filename;
vector<User> m_users;
};
int main() {
// 创建用户数据库对象
UserDatabase userdb("users.txt");
// 循环读取用户输入,验证用户身份
while (true) {
string username, password;
cout << "Username: ";
cin >> username;
cout << "Password: ";
cin >> password;
if (userdb.authenticate(username, password)) {
cout << "Authentication successful!" << endl;
break;
} else {
cout << "Authentication failed. Please try again." << endl;
}
}
return 0;
}
```
在这个示例程序中,我们首先定义了一个`User`结构体,表示用户的用户名和密码。然后我们定义了一个`UserDatabase`类,表示用户数据库,它包含一个文件名成员变量和一个用户列表成员变量。在`UserDatabase`类的构造函数中,我们读取用户数据文件,并解析文件内容,构建用户数据库。在`UserDatabase`类的`authenticate`方法中,我们遍历用户列表,查找与给定用户名和密码匹配的用户。如果找到了,就返回true,表示验证通过;否则返回false,表示验证失败。
在`main`函数中,我们创建一个`UserDatabase`对象,表示用户数据库。然后我们循环读取用户输入,提示用户输入用户名和密码,并调用`UserDatabase`对象的`authenticate`方法验证用户身份。如果验证通过,就输出一条成功信息,并退出循环;否则输出一条失败信息,提示用户重试。
请注意,这只是一个简单的示例程序,它不包含任何加密或安全措施,仅用于演示多用户文件密码登录的基本概念。在实际应用中,您应该采取更加复杂的安全措施,例如使用加密算法保护用户密码,以及限制用户访问和操作文件的权限等。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)