void loginMenu() { cout << "请选择登录类型:" << endl; cout << "1. 学生登录" << endl; cout << "2. 管理员登录" << endl; cout << "3. 注册" << endl; cout << "0. 退出" << endl; 在不使用数据库的前提下,怎么将注册得到的信息用于登录、
时间: 2023-07-19 15:33:14 浏览: 90
如果不使用数据库,可以将注册的用户信息保存到文件中,例如一个文本文件。在注册时,将用户输入的信息写入到文件中,每个用户的信息占用一行,不同字段之间可以使用逗号、空格或其他分隔符进行分隔。在登录时,读取保存用户信息的文件,根据用户输入的用户名或邮箱查找对应的用户信息,然后进行密码校验,如果校验通过,则允许用户登录。
下面是一个简单的示例,演示如何将用户信息保存到文件中,并在登录时使用文件中的信息进行校验。
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// 定义用户信息结构体
struct UserInfo {
string username;
string password;
string email;
};
// 注册函数,将用户信息保存到文件中
void registerUser() {
UserInfo user;
cout << "请输入用户名:";
cin >> user.username;
cout << "请输入密码:";
cin >> user.password;
cout << "请输入邮箱:";
cin >> user.email;
// 将用户信息写入到文件中
ofstream outfile("user.txt", ios::app);
outfile << user.username << " " << user.password << " " << user.email << endl;
outfile.close();
cout << "注册成功!" << endl;
}
// 登录函数,从文件中读取用户信息进行校验
void loginUser() {
string username, password;
cout << "请输入用户名或邮箱:";
cin >> username;
cout << "请输入密码:";
cin >> password;
// 从文件中读取用户信息进行校验
ifstream infile("user.txt");
string line;
bool found = false;
while (getline(infile, line)) {
size_t pos = line.find(" ");
string name = line.substr(0, pos);
string rest = line.substr(pos + 1);
pos = rest.find(" ");
string pwd = rest.substr(0, pos);
string email = rest.substr(pos + 1);
if (name == username || email == username) {
found = true;
if (pwd == password) {
cout << "登录成功!" << endl;
} else {
cout << "密码错误!" << endl;
}
break;
}
}
infile.close();
if (!found) {
cout << "用户名或邮箱不存在!" << endl;
}
}
// 登录菜单函数
void loginMenu() {
int choice;
do {
cout << "请选择登录类型:" << endl;
cout << "1. 学生登录" << endl;
cout << "2. 管理员登录" << endl;
cout << "3. 注册" << endl;
cout << "0. 退出" << endl;
cin >> choice;
switch (choice) {
case 1:
cout << "学生登录" << endl;
loginUser();
break;
case 2:
cout << "管理员登录" << endl;
loginUser();
break;
case 3:
cout << "注册" << endl;
registerUser();
break;
case 0:
cout << "退出" << endl;
break;
default:
cout << "无效选择,请重新输入!" << endl;
break;
}
} while (choice != 0);
}
int main() {
loginMenu();
return 0;
}
```
阅读全文