欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > C++(类模板的运用)

C++(类模板的运用)

2025/9/3 23:56:14 来源:https://blog.csdn.net/2301_77654321/article/details/147052127  浏览:    关键词:C++(类模板的运用)

 

使用vector实现一个简单的本地注册登录系统 注册:将账号密码存入vector里面,注意防重复判断 登录:判断登录的账号密码是否正确 

#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
using namespace std;struct usr {string pin;string psw;
};// 读取所有用户信息
vector<usr> readUsers(const string& filename) {vector<usr> users;ifstream infile(filename);string pin, psw;while (infile >> pin >> psw) {users.push_back({pin, psw});}infile.close();return users;
}// 检查账号是否已存在
bool isDuplicate(const vector<usr>& users, const string& pin) {for (const auto& u : users) {if (u.pin == pin) {return true;}}return false;
}// 验证登录
bool loginValid(const vector<usr>& users, const string& pin, const string& psw) {for (const auto& u : users) {if (u.pin == pin && u.psw == psw) {return true;}}return false;
}// 写入新用户到文件
void writeUser(const string& filename, const usr& user) {ofstream outfile(filename, ios::app); // 追加写入outfile << user.pin << " " << user.psw << endl;outfile.close();
}int main() {const string filename = "1.txt";while (true) {cout << "选择操作:" << endl;cout << "1. 注册" << endl;cout << "2. 登录" << endl;cout << "3. 退出" << endl;int choice;cin >> choice;if (choice == 1) {usr user;cout << "请输入账号和密码:" << endl;cin >> user.pin >> user.psw;vector<usr> users = readUsers(filename);if (isDuplicate(users, user.pin)) {cout << "账号已存在,注册失败。" << endl;} else {writeUser(filename, user);cout << "注册成功!" << endl;}}else if (choice == 2) {string pin, psw;cout << "请输入账号和密码:" << endl;cin >> pin >> psw;vector<usr> users = readUsers(filename);if (loginValid(users, pin, psw)) {cout << "登录成功,欢迎回来," << pin << "!" << endl;} else {cout << "登录失败,账号或密码错误。" << endl;}}else if (choice == 3) {cout << "程序已退出,再见!" << endl;break;}else {cout << "请输入正确选项(1-3)!" << endl;}cout << endl;}return 0;
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词