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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900502.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900502.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900502.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【大模型】DeepSeek+藍耕MaaS平臺+海螺AI生成高質量視頻實戰詳解

目錄 一、前言 二、藍耘智能云MaaS平臺介紹 2.1 藍耘智算平臺是什么 2.2 平臺優勢 2.3 平臺核心能力 三、海螺AI視頻介紹 3.1 海螺AI視頻是什么 3.2 海螺AI視頻主要功能 3.3 海螺AI視頻應用場景 3.4 海螺AI視頻核心優勢 3.5 項目git地址 四、藍耘MaaS平臺DeepSeek海…

接口自動化學習二:session自動管理cookie

session自動管理cookie&#xff1a; cookie中的數據&#xff0c;都是session提供的 實現步驟&#xff1a; 1.創建session對象&#xff1b;my_sessionrequests.Session() 2.使用session實例&#xff0c;調用get方法&#xff0c;發送獲取驗證碼請求&#xff08;不需要提取cookie&…

C++類型轉換詳解

目錄 一、內置 轉 內置 二、內置 轉 自定義 三、自定義 轉 內置 四、自定義 轉 自定義 五、類型轉換規范化 1.static_case 2.reinterpret_cast 3.const_cast 4.dynamic_cast 六、RTTI 一、內置 轉 內置 C兼容C語言&#xff0c;在內置類型之間轉換規則和C語言一樣的&am…

QEMU源碼全解析 —— 塊設備虛擬化(17)

接前一篇文章:QEMU源碼全解析 —— 塊設備虛擬化(16) 本文內容參考: 《趣談Linux操作系統》 —— 劉超,極客時間 《QEMU/KVM源碼解析與應用》 —— 李強,機械工業出版社 《KVM實戰 —— 原理、進階與性能調優》—— 任永杰 程舟,機械工業出版社

mac 卸載流氓軟件安全助手

之前個人電腦在公司使用過一段時間&#xff0c;為了使用網線聯網安裝了公司指定的 聯軟上網助手&#xff0c;誰知安裝容易卸載難&#xff0c;后來找運維來卸載&#xff0c;輸入管理員密碼后&#xff0c;也無反應&#xff0c;最后不了了之了&#xff0c;這個毒瘤軟件長期在后臺駐…

Java 大視界 -- Java 大數據機器學習模型在智能客服多輪對話系統中的優化策略(179)

&#x1f496;親愛的朋友們&#xff0c;熱烈歡迎來到 青云交的博客&#xff01;能與諸位在此相逢&#xff0c;我倍感榮幸。在這飛速更迭的時代&#xff0c;我們都渴望一方心靈凈土&#xff0c;而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識&#xff0c;也…

極氪汽車云原生架構落地實踐

云原生架構落地實踐的背景 隨著極氪數字業務的飛速發展&#xff0c;背后的 IT 技術也在不斷更新迭代。極氪極為重視客戶對服務的體驗&#xff0c;并將系統穩定性、業務功能的迭代效率、問題的快速定位和解決視為構建核心競爭力的基石。 為快速響應用戶的需求&#xff0c;例如…

Python?判斷循環

????˙?˙? ? 判斷??常用的判斷符號(比較運算符)andor括號notin 和 not inif-elif-else循環??計數循環 forrange()函數簡易倒計時enumerate()函數zip()函數遍歷列表遍歷元組遍歷字符串遍歷字典條件循環 while提前跳轉 continue跳出循環 break能量站??判斷?? …

FreeRTOS與RT-Thread深度對比:從入門到精通的全面解析

FreeRTOS與RT-Thread深度對比&#xff1a;從入門到精通的全面解析 在嵌入式系統開發領域&#xff0c;實時操作系統(RTOS)扮演著至關重要的角色。FreeRTOS和RT-Thread作為兩款主流的開源RTOS&#xff0c;各有特色&#xff0c;適用于不同的應用場景。本文將從小白到大神的角度&a…

OpenCV 圖形API(18)用于執行兩個矩陣(或數組)的逐元素減法操作函數sub()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 描述 計算兩個矩陣之間的逐元素差值。 sub 函數計算兩個矩陣之間的差值&#xff0c;要求這兩個矩陣具有相同的尺寸和通道數&#xff1a; dst ( I ) src…

LeetCode刷題SQL筆記

系列博客目錄 文章目錄 系列博客目錄1.distinct關鍵字 去除重復2.char_length()3.group by 與 count()連用4.date類型有個函數datediff()5.mod 函數6.join和left join的區別1. **JOIN&#xff08;內連接&#xff0c;INNER JOIN&#xff09;**示例&#xff1a; 2. **LEFT JOIN&a…

其他合成方式介紹

在 SurfaceFlinger 的 Layer 處理邏輯中&#xff0c;除了常見的 Client Composition&#xff08;GPU合成&#xff09; 和 Device Composition&#xff08;HWC合成&#xff09;&#xff0c;還存在一些特殊的合成方式&#xff0c;比如 Sideband、Solid Color 和 Display Decorati…

GraphRAG與知識圖譜

一、GraphRAG介紹 1.1 什么是 Graph RAG&#xff1f; Graph RAG&#xff08;Retrieval-Augmented Generation&#xff09;&#xff0c;是一種基于知識圖譜的檢索增強技術&#xff0c; 通過構建圖模型的知識表達&#xff0c;將實體和關系之間的聯系用圖的形式進行展示&#xff…

一個開源的 VS Code 大模型聊天插件:Light-at

這篇文章是一個開發雜談。對于有經驗的開發者來說&#xff0c;可能這個項目并不算特別復雜或者高技術&#xff0c;只是對我個人來說算一個里程碑&#xff0c;因此寫篇雜談文章記錄一下。也許也能給起步者一些參考。 項目地址&#xff1a;https://github.com/HiMeditator/light-…

SQL121 創建索引

-- 普通索引 CREATE INDEX idx_duration ON examination_info(duration);-- 唯一索引 CREATE UNIQUE INDEX uniq_idx_exam_id ON examination_info(exam_id);-- 全文索引 CREATE FULLTEXT INDEX full_idx_tag ON examination_info(tag);描述 現有一張試卷信息表examination_in…

【Pandas】pandas DataFrame set_flags

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于獲取 DataFrame 的行索引DataFrame.columns用于獲取 DataFrame 的列標簽DataFrame.dtypes用于獲取 DataFrame 中每一列的數據類型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…

Linux終止進程(kill process)的一些玩法

經常運行一個程序時&#xff0c;表面上已經終止了&#xff0c;實際上還在后臺運行。一來呢&#xff0c;它可能占據端口&#xff0c;導致端口復用的時候報錯。二來呢&#xff0c;它可能占用GPU&#xff0c;讓你顯存直接少一塊。 尤其是在多進程程序&#xff0c;假如運行“python…

《比特城傳奇:公鑰、私鑰與網絡安全的守護之戰》

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 第一章&#xff1a;雙鑰之謎 比特城的清晨總是籠罩著一層薄霧&#xff0c;仿佛這座城市本身就是由無數個0和1編織而成的幻境。在這里&#xff0c;信息如同空氣般無處不在&#xff0c;但…

BGP路由協議之屬性1

公認屬性是所有 BGP 路由器都必須能夠識別的屬性 公認必遵 (Well-known Mandatory) : 必須包括在每個 Update 消息里公認任意 (Well-known Discretionary) : 可能包括在某些 Update 消息里。 可選屬性不需要都被 BGP 路由器所識別 可選過渡(OptionalTransitive) : BGP 設備不…

Pr視頻剪輯 Premiere Pro 2024 for Mac

Pr視頻剪輯 Premiere Pro 2024 for Mac 文章目錄 Pr視頻剪輯 Premiere Pro 2024 for Mac一、介紹二、效果三、下載 一、介紹 Premiere Pro 2024 for Mac是一款專業的視頻編輯軟件&#xff0c;廣泛應用于電影、電視、廣告等領域。它為Mac用戶提供了強大的剪輯、調色、音頻處理等…