1.文件操作相關的庫

一、filesystem(C++17) 和 fstream

1.std::filesystem::path - cppreference.cn - C++參考手冊

std::filesystem::path

表示路徑

構造函數:

path(?string_type&&?source, format fmt?=?auto_format?);

可以用string進行構造,也可以用string進行隱式類型轉換。

2.std::filesystem::exists - cppreference.cn - C++參考手冊

bool?exists(?const?std::filesystem::path&?p?);

檢查路徑是否指向現有的文件系統對象,即對應路徑的文件是否存在。

3.std::filesystem::create_directory, std::filesystem::create_directories - cppreference.cn - C++參考手冊

bool?create_directory(?const?std::filesystem::path&?p?);

bool?create_directories(?const?std::filesystem::path&?p?);

creat_directory創建單個空目錄,create_directories遞歸創建目錄。

4.打開文件(IO,ifstream和ofstream)

4.1.寫方式打開 ofstream

explicit ofstream (const string& filename, ios_base::openmode mode = ios_base::out); //不傳參默認直接覆蓋寫入
初始化,類似于 open(filename,O_WRONLY | mode);
filename為文件名,mode為打開的方式, std::ios::app?表示以追加方式寫入。
ios中相關操作對象:
???????? ios::in:讀取文件(ifstream默認模式)
???????? ios::out:寫入文件(ofstream默認模式,會覆蓋原內容)
???????? ios::app:追加寫入(寫入內容始終在文件末尾)
????????ios::ate:打開文件后定位到末尾(可移動指針)
???????? ios::trunc:清空文件內容(ofstream默認行為,與ios::out組合時生效)
簡述:
追加方式打開:
std::ofstream ofs(filename, std::ios::out | std::ios::app); (std::ios::out可省略)?
效果:不存在就新建,追加寫入。 ( std::ios::out 可不寫,ofstream自帶這個)

隱含行為:如果文件不存在,std::ofstream 會自動創建文件ofstream隱含 O_CREAT
只寫且清空方式打開:

std::ofstream ofs(filename, std::ios::trunc);

相當于行為:open(filename, O_CREAT | O_WRONLY | O_TRUNC);

4.2.讀方式打開 ifstream

explicit ifstream (const string& filename, ios_base::openmode mode = ios_base::in);//默認只讀

以只讀方式打開:
std::ifstream ifs(filename);?

相當于行為:open(filename, O_RDONLY);

4.3 關閉

void close();

5.讀寫操作

5.1 讀操作

istream& read (char* s, streamsize n);
istream& getline (istream&  is, string& str);

第一個:按指定字節數量讀,讀到s中。file.read(s,n);

第二個:按行讀取,讀到str中。std::getline(file,str);

5.2 寫操作

用流插入的方式進行寫入,和cout一致。

file<<xxx;

6.文件重命名

void?rename(?const?std::filesystem::path&?old_p, const?std::filesystem::path&?new_p?);

使用:std::filesystem::rename(old,new);

7.更改工作目錄

void?current_path(?const?std::filesystem::path&?p?);

使用:std::filesystem::current_path(newWorkDir);

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

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

相關文章

【 java 集合知識 第二篇 】

目錄 1.Map集合 1.1.快速遍歷Map 1.2.HashMap實現原理 1.3.HashMap的擴容機制 1.4.HashMap在多線程下的問題 1.5.解決哈希沖突的方法 1.6.HashMap的put過程 1.7.HashMap的key使用什么類型 1.8.HashMapkey可以為null的原因 1.9.HashMap為什么不采用平衡二叉樹 1.10.Hash…

【Dify 知識庫 API】“根據文本更新文檔” 真的是差異更新嗎?一文講透真實機制!

在使用 Dify 知識庫 API 過程中,很多開發者在調用 /datasets/{dataset_id}/document/update-by-text 接口時,常常會產生一個疑問: ?? 這個接口到底是 “智能差異更新” 還是 “純覆蓋更新”? 網上的資料并不多,很多人根據接口名誤以為是增量更新。今天我結合官方源碼 …

大模型如何革新用戶價值、內容匹配與ROI預估

寫在前面 在數字營銷的戰場上,理解用戶、精準觸達、高效轉化是永恒的追求。傳統方法依賴結構化數據和機器學習模型,在用戶價值評估、人群素材匹配以及策略ROI預估等核心問題上取得了顯著成就。然而,隨著數據維度日益復雜,用戶行為愈發多變,傳統方法也面臨著特征工程繁瑣、…

基于端到端深度學習模型的語音控制人機交互系統

基于端到端深度學習模型的語音控制人機交互系統 摘要 本文設計并實現了一個基于端到端深度學習模型的人機交互系統,通過語音指令控制其他設備的程序運行,并將程序運行結果通過語音合成方式反饋給用戶。系統采用Python語言開發,使用PyTorch框架實現端到端的語音識別(ASR)…

【2025年】解決Burpsuite抓不到https包的問題

環境&#xff1a;windows11 burpsuite:2025.5 在抓取https網站時&#xff0c;burpsuite抓取不到https數據包&#xff0c;只顯示&#xff1a; 解決該問題只需如下三個步驟&#xff1a; 1、瀏覽器中訪問 http://burp 2、下載 CA certificate 證書 3、在設置--隱私與安全--…

Jenkins 工作流程

1. 觸發構建 Jenkins 的工作流程從觸發構建開始。構建可以由以下幾種方式觸發&#xff1a; 代碼提交觸發&#xff1a;通過與版本控制系統&#xff08;如 Git、SVN&#xff09;集成&#xff0c;當代碼倉庫有新的提交時&#xff0c;Jenkins 會自動觸發構建。 定時觸發&#xff…

Jmeter如何進行多服務器遠程測試?

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 JMeter是Apache軟件基金會的開源項目&#xff0c;主要來做功能和性能測試&#xff0c;用Java編寫。 我們一般都會用JMeter在本地進行測試&#xff0c;但是受到…

Kafka入門-生產者

生產者 生產者發送流程&#xff1a; 延遲時間為0ms時&#xff0c;也就意味著每當有數據就會直接發送 異步發送API 異步發送和同步發送的不同在于&#xff1a;異步發送不需要等待結果&#xff0c;同步發送必須等待結果才能進行下一步發送。 普通異步發送 首先導入所需的k…

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類

分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類 目錄 分類預測 | Matlab實現CNN-LSTM-Attention高光譜數據分類分類效果功能概述程序設計參考資料 分類效果 功能概述 代碼功能 該MATLAB代碼實現了一個結合CNN、LSTM和注意力機制的高光譜數據分類模型&#xff0c;核心…

gemini和chatgpt數據對比:誰在卷性能、價格和場景?

先把結論“劇透”給趕時間的朋友&#xff1a;頂配 Gemini Ultra/2.5 Pro 在紙面成績上普遍領先&#xff0c;而 ChatGPT 家族&#xff08;GPT-4o / o3 / 4.1&#xff09;則在延遲、生態和穩定性上占優。下面把核心數據拆開講&#xff0c;方便你對號入座。附帶參考來源&#xff0…

代碼訓練LeetCode(23)隨機訪問元素

代碼訓練(23)LeetCode之隨機訪問元素 Author: Once Day Date: 2025年6月5日 漫漫長路&#xff0c;才剛剛開始… 全系列文章可參考專欄: 十年代碼訓練_Once-Day的博客-CSDN博客 參考文章: 380. O(1) 時間插入、刪除和獲取隨機元素 - 力扣&#xff08;LeetCode&#xff09;力…

C++面試5——對象存儲區域詳解

C++對象存儲區域詳解 核心觀點:內存是程序員的戰場,存儲區域決定對象的生殺大權!棧對象自動赴死,堆對象生死由你,全局對象永生不死,常量區對象只讀不滅。 一、四大地域生死簿 棧區(Stack) ? 特點:自動分配釋放,速度極快(類似高鐵進出站) ? 生存期:函數大括號{}就…

STM32 智能小車項目 L298N 電機驅動模塊

今天開始著手做智能小車的項目了 在智能小車或機器人項目中&#xff0c;我們經常會聽到一個詞叫 “H 橋電機驅動”&#xff0c;尤其是常見的 L298N 模塊&#xff0c;就是基于“雙 H 橋”原理設計的。那么&#xff0c;“H 橋”到底是什么&#xff1f;為什么要用“雙 H 橋”來驅動…

python項目如何創建docker環境

這里寫自定義目錄標題 python項目創建docker環境docker配置國內鏡像源構建一個Docker 鏡像驗證鏡像合理的創建標題&#xff0c;有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個表格設定內容居中、居左、居右SmartyPant…

MySQL-多表關系、多表查詢

一. 一對多(多對一) 1. 例如&#xff1b;一個部門下有多個員工 在數據庫表中多的一方(員工表)、添加字段&#xff0c;來關聯一的一方(部門表)的主鍵 二. 外鍵約束 1.如將部門表的部門直接刪除&#xff0c;然而員工表還存在其部門下的員工&#xff0c;出現了數據的不一致問題&am…

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解

【 HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解 一、前言&#xff1a;移動開發聲明式 UI 框架的技術變革 在移動操作系統的發展歷程中&#xff0c;UI 開發模式經歷了從命令式到聲明式的重大變革。 根據華為開發者聯盟 2024 年數據報告顯示&#xff0c;HarmonyOS 設備…

【SSM】SpringMVC學習筆記7:前后端數據傳輸協議和異常處理

這篇學習筆記是Spring系列筆記的第7篇&#xff0c;該筆記是筆者在學習黑馬程序員SSM框架教程課程期間的筆記&#xff0c;供自己和他人參考。 Spring學習筆記目錄 筆記1&#xff1a;【SSM】Spring基礎&#xff1a; IoC配置學習筆記-CSDN博客 對應黑馬課程P1~P20的內容。 筆記2…

借助 Spring AI 和 LM Studio 為業務系統引入本地 AI 能力

Spring AI 1.0.0-SNAPSHOTLM Studio 0.3.16qwen3-4b 參考 Unable to use spring ai with LMStudio using spring-ai openai module Issue #2441 spring-projects/spring-ai GitHub LM Studio 下載安裝 LM Studio下載 qwen3-4b 模型。對于 qwen3 系列模型&#xff0c;測試…

C++學習-入門到精通【13】標準庫的容器和迭代器

C學習-入門到精通【13】標準庫的容器和迭代器 目錄 C學習-入門到精通【13】標準庫的容器和迭代器一、標準模板庫簡介1.容器簡介2.STL容器總覽3.近容器4.STL容器的通用函數5.首類容器的通用typedef6.對容器元素的要求 二、迭代器簡介1.使用istream_iterator輸入&#xff0c;使用…

Vue Router的核心實現原理深度解析

1. Vue Router的基本架構 Vue Router的核心功能是實現前端路由&#xff0c;即在不重新加載頁面的情況下更改應用的視圖。它的基本架構包括&#xff1a; 路由配置&#xff1a;定義路徑與組件的映射關系路由實例&#xff1a;管理路由狀態和提供導航方法路由視圖&#xff1a;渲染…