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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;渲染…