?
使用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 << "請輸入正確選項" << endl;}cout << endl;}return 0;
}