【39】MFC入門到精通——C++ /MFC操作文件行(讀取,刪除,修改指定行)

文章目錄

  • 1 通過關鍵詞,讀取某一行 (3種方法)
  • 2 刪除 指定行
  • 3 修改 指定行

1 通過關鍵詞,讀取某一行 (3種方法)

通過定位關鍵詞,讀取某一行信息,返回CString

//通過定位關鍵詞,讀取某一行信息,返回CString
CString fileRW::Read_CStrLine(CString KEY)
{ifstream ifs; //創建文件輸入對象ifs.open("../x64/Debug/config.ini", ios::in); //打開文件if (!ifs.is_open()) {cout << "文件打開失敗" << endl;return _T("");}CString StrLine;//讀文件,讀取關鍵詞KEY的下一行內容char buf[1024] = { 0 };while (KEY != CString(buf)){ifs.getline(buf, sizeof(buf)); //讀取一行內容}ifs.getline(buf, sizeof(buf));StrLine = CString(buf);ifs.close(); //關閉文件return StrLine;
}

通過定位關鍵詞,讀取某一行信息,返回CString

//通過定位關鍵詞,讀取某一行信息,返回CString
CString fileRW::Read_KeyLine(CString KEY)
{if (!file.Open(GetAppPath() + "./config.ini", CFile::modeRead)){return 0;}CString   strLine = _T("");while (file.ReadString(strLine)){if (KEY == strLine){break;}}file.ReadString(strLine);file.Close();return strLine;
}

通過定位關鍵詞,讀取某一行信息,返回string

//通過定位關鍵詞,讀取某一行信息,返回string
string fileRW::Read_strLine(string KEY)
{ifstream ifs; //創建文件輸入對象ifs.open("../x64/Debug/config.ini", ios::in); //打開文件if (!ifs.is_open()) {cout << "文件打開失敗" << endl;return "-1";}string StrLine;//讀文件,讀取關鍵詞KEY的下一行內容char buf[1024] = { 0 };while (KEY != string(buf)){ifs.getline(buf, sizeof(buf)); //讀取一行內容}ifs.getline(buf, sizeof(buf));StrLine = string(buf);ifs.close(); //關閉文件return StrLine;
}

2 刪除 指定行

/************************************
@ Brief:		刪除指定行
@ Author:
@ Created:
@ Return:
************************************/
void fileRW::DelLineData(char* fileName, int lineNum)
{ifstream in;in.open(fileName);string strFileData = "";int line = 1;char lineData[1024] = { 0 };while (in.getline(lineData, sizeof(lineData))){if (line == lineNum){strFileData += "\n";}else{strFileData += CharToStr(lineData);strFileData += "\n";}line++;}in.close();//寫入文件ofstream out;out.open(fileName);out.flush();out << strFileData;out.close();
}

3 修改 指定行

void fileRW::ModifyLineData(string fileName, int lineNum, string lineData)
{ifstream in;in.open(fileName, ios::in);string strFileData = "";int line = 1;char tmpLineData[1024] = { 0 };while (in.getline(tmpLineData, sizeof(tmpLineData))){if (line == lineNum){strFileData += lineData;strFileData += "\n";}else{strFileData += tmpLineData;strFileData += "\n";}line++;}in.close();//寫入文件ofstream out;out.open(fileName, ios::out);out.flush();out << strFileData;out.close();
}

參考:

C++操作文件行(讀取,刪除,修改指定行)

MFC_9.13_登陸注冊,txt保存用戶名密碼

MFC中修改特定行

C++實現讀取文件的指定行數的方法
C++ 讀文件某一行(特定行)數據

在這里插入圖片描述

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

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

相關文章

5 種可行的方法:如何將 Redmi 聯系人備份到 Mac

將 Redmi 聯系人備份到 Mac 是防止因手機損壞、丟失或更換設備而導致數據丟失的重要措施。雖然云服務提供了便利性&#xff0c;但擁有離線備份可以提供額外的安全性&#xff0c;而無需完全依賴互聯網。如果您想知道如何將 Redmi 聯系人備份到 Mac&#xff0c;本文將為您介紹 5 …

LeRobot 具身智能機械臂 SO-ARM100 從搭建到訓練全流程

今天給大家分享一下 LeRobot 具身智能機械臂 SO-ARM100 的完整使用流程&#xff0c;包括設備組裝、環境配置、遠程控制、數據錄制到模型訓練的全過程。適合剛入門具身智能的小伙伴參考學習。 一、前期準備與資源獲取 在開始之前&#xff0c;我們需要準備好相關的資源和工具&a…

LINUX720 SWAP擴容;新增邏輯卷;邏輯卷擴容;數據庫遷移;gdisk

SWAP空間擴展 方法一 增加硬盤或分區擴展 swap -s mkswap /dev/sdd6 blkid /dev/sdd6 swapon /dev/sdd6 swapon -s vim /etc/fstab /dev/sdd6 swap swap defaults 0 0 開機自動擴容 swap -s [rootweb ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…

Python 進程間通信:TCP安全加密數據傳輸

最近在寫安全方面的程序&#xff0c;有需求&#xff0c;就做了這些TCP加密數據傳輸類。 utils.safeUtils的內容詳見&#xff1a; SafeObj&#xff1a;Python 高安全性加密數據容器類-CSDN博客SafeKey&#xff1a;Python 高安全性加密密碼容器類-CSDN博客 如有任何問題或漏洞歡迎…

Windows批量修改文件屬性方法

標題使用icacls命令&#xff08;推薦批量操作&#xff09;打開管理員權限的命令提示符&#xff08;CMD&#xff09;執行以下命令&#xff1a;cmd icacls "文件夾路徑" /grant 用戶名:(OI)(CI)F /T /C 參數說明&#xff1a;(OI)&#xff1a;對象繼承 - 適用于文件夾(C…

Entity Component System架構

ECS架構 1 簡介 在當今快速發展的軟件開發領域&#xff0c;游戲開發、實時模擬等場景對系統的性能、靈活性和可擴展性提出了極高的要求。傳統的面向對象架構在面對復雜且動態變化的實體時&#xff0c;往往會出現代碼耦合度高、擴展性差等問題。? ECS&#xff08;Entity - Com…

.vscode 擴展配置

一、vue快捷鍵配置 在項目.vscode下新建vue3.0.code-snippets 每當輸入vue3.0后自動生成代碼片段 {"Vue3.0快速生成模板": {"scope": "vue","prefix": "Vue3.0","body": ["<template>"," &…

一個基于阿里云的C端Java服務的整體項目架構

1.背景介紹 總結一下工作使用到的基于通常的公有云的項目整體架構&#xff0c;如何基于公有云建設安全可靠的服務&#xff0c;以阿里云為例的整體架構&#xff1b;1. 全局流量治理層&#xff08;用戶請求入口&#xff09;1.1 域名與 DNS 解析域名注冊與備案&#xff1a;通過阿里…

《剝開洋蔥看中間件:Node.js請求處理效率與錯誤控制的深層邏輯》

在Node.js的運行時環境中&#xff0c;中間件如同一系列精密咬合的齒輪&#xff0c;驅動著請求從進入到響應的完整旅程&#xff0c;而洋蔥模型則是這組齒輪的傳動系統。它以一種看似矛盾的方式融合了順序與逆序、分離與協作——讓每個處理環節既能獨立工作&#xff0c;又能感知全…

GaussDB union 的用法

1 union 的作用union 運算符用于組合兩個或更多 select 語句的結果集。2 union 使用前提union 中的每個 select 語句必須具有相同的列數這些列也必須具有相似的數據類型每個 select 語句中的列也必須以相同的順序排列3 union 語法select column_name(s) from table1 union sele…

構建足球實時比分APP:REST API與WebSocket接入方案詳解

在開發足球實時比分應用時&#xff0c;數據接入方式的選擇直接影響用戶體驗和系統性能。本文將客觀分析REST API和WebSocket兩種主流接入方案的技術特點、適用場景和實現策略&#xff0c;幫助開發者做出合理選擇。一、REST API&#xff1a;靈活的數據獲取方案核心優勢標準化接口…

Linux文件系統三要素:塊劃分、分區管理與inode結構解析

理解文件系統 我們知道文件可以分為磁盤文件和內存文件&#xff0c;內存文件前面我們已經談過了&#xff0c;下面我們來談談磁盤文件。 目錄 一、引入"塊"概念 解析 stat demo.c 命令輸出 基本信息 設備信息 索引節點信息 權限信息 時間戳 二、引入"分區…

基于paddleDetect的半監督目標檢測實戰

基于paddleDetect的半監督目標檢測實戰前言相關介紹前提條件實驗環境安裝環境項目地址使用paddleDetect的半監督方法訓練自己的數據集準備數據分割數據集配置參數文件PaddleDetection-2.7.0/configs/semi_det/denseteacher/denseteacher_ppyoloe_plus_crn_l_coco_semi010.ymlPa…

計算機網絡:(十)虛擬專用網 VPN 和網絡地址轉換 NAT

計算機網絡&#xff1a;&#xff08;十&#xff09;虛擬專用網 VPN 和網絡地址轉換 NAT前言一、虛擬專用網 VPN1. 基礎概念與作用2. 工作原理3. 常見類型4. 協議對比二、NAT&#xff1a;網絡地址轉換1. 基礎概念與作用2. 工作原理與類型3. 優缺點與問題4. 進階類型三、VPN 與 N…

數位 dp

數位dp 特點 問題大多是指“在 [l,r][l,r][l,r] 的區間內&#xff0c;滿足……的數字的個數、種類&#xff0c;等等。” 但是顯然&#xff0c;出題人想要卡你&#xff0c;rrr 肯定是非常大的&#xff0c;暴力枚舉一定超時。 于是就有了數位 dp。 基本思路 數位 dp 說白了…

Selector的用法

Selector的用法 Selector是基于lxml構建的支持XPath選擇器、CSS選擇器&#xff0c;以及正則表達式&#xff0c;功能全面&#xff0c;解析速度和準確度非常高 from scrapy import Selectorbody <html><head><title>HelloWorld</title></head>&…

Netty封裝Websocket并實現動態路由

引言 關于Netty和Websocket的介紹我就不多講了,網上一搜一大片。現如今AI的趨勢發展很熱門,長連接對話也是會經常接觸到的,使用Websocket實現長連接,那么很多人為了快速開發快速集成就會使用spring-boot-starter-websocket依賴快速實現,但是注意該實現是基于tomcat的,有…

行為型設計模式:解釋器模式

解釋器模式 解釋器模式介紹 解釋器模式使用頻率不算高&#xff0c;通常用來描述如何構建一個簡單“語言”的語法解釋器。它只在一些非常特定的領域被用到&#xff0c;比如編譯器、規則引擎、正則表達式、SQL 解析等。不過&#xff0c;了解它的實現原理同樣很重要&#xff0c;能…

SaTokenException: 未能獲取對應StpLogic 問題解決

&#x1f4dd; Sa-Token 異常處&#xff1a;未能獲取對應StpLogic&#xff0c;typeuser&#x1f9e8; 異常信息 cn.dev33.satoken.exception.SaTokenException: 未能獲取對應StpLogic&#xff0c;typeuser拋出位置&#xff1a; throw new SaTokenException("未能獲取對應S…

Web前端性能優化原理與方法

一、概述 1.1 性能對業務的影響 大部分網站的作用是&#xff1a;產品信息載體、用戶交互工具或商品流通渠道。這就要求網站與更多用戶建立聯系&#xff0c;同時還要保持良好的用戶黏性&#xff0c;所以網站就不能只關注自我表達&#xff0c;而不顧及用戶是否喜歡。看看網站性…