当前位置: 首页 > article >正文

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.lryc.cn/news/2397829.html

相关文章:

  • Pytorch中一些重要的经典操作和简单讲解
  • 【容器docker】启动容器kibana报错:“message“:“Error: Cannot find module ‘./logs‘
  • 基于bp神经网络的adp算法
  • C#里与嵌入式系统W5500网络通讯(4)
  • Spring boot集成milvus(spring ai)
  • Visual Studio+SQL Server数据挖掘
  • maven项目编译时复制xml到classes目录方案
  • 通过阿里云服务发送邮件
  • Vad-R1:通过从感知到认知的思维链进行视频异常推理
  • 黑马Java面试笔记之MySQL篇(事务)
  • 群辉(synology)NAS老机器连接出现网页端可以进入,但是本地访问输入一样的账号密码是出现错误时解决方案
  • C++多重继承详解与实战解析
  • 【深度学习】实验四 卷积神经网络CNN
  • 实现一个免费可用的文生图的MCP Server
  • 无公网ip远程桌面连接不了怎么办?内网计算机让外网访问方法和问题分析
  • 【手搓一个原生全局loading组件解决页面闪烁问题】
  • CSS基础巩固-基础-选择
  • 一种在SQL Server中传递多行数据的方法
  • 【Docker 从入门到实战全攻略(一):核心概念 + 命令详解 + 部署案例】
  • github 提交失败,连接不上
  • 系统架构设计师(一):计算机系统基础知识
  • VMware安装Ubuntu全攻略
  • 清理 pycharm 无效解释器
  • 精益数据分析(92/126):指标基准化——如何判断你的数据表现是否足够优秀
  • 手机如何压缩文件为 RAR 格式:详细教程与工具推荐
  • Elasticsearch集群管理的相关工具介绍
  • 基于多尺度卷积和扩张卷积-LSTM的多变量时间序列预测
  • Java 注解式限流教程(使用 Redis + AOP)
  • C# XAML 基础:构建现代 Windows 应用程序的 UI 语言
  • Linux运维笔记:服务器感染 netools 病毒案例