码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++文件操作


    一、fstream简介

    C++ 提供了一组用于文件操作的标准库fstream,可以进行文件的读取、写入和其他相关操作。常用的文件操作包括文件的打开、关闭、读取、写入和定位等。下面是一些常见的文件操作函数:

    文件的打开和关闭:

    • std::ofstream:用于写入文件,使用 std::ofstream 类对象
    • std::ifstream:用于读取文件,使用 std::ifstream 类对象
    • std::fstream:可以同时进行读写操作,使用 std::fstream 类对象

    open打开文件:

    下面是 open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

    void open(const char *filename, ios::openmode mode);

    在这里,open() 成员函数的第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式。

    模式标志描述
    ios::app追加模式。所有写入都追加到文件末尾。
    ios::ate文件打开后定位到文件末尾。
    ios::in打开文件用于读取。
    ios::out打开文件用于写入。
    ios::trunc如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。

    例如,如果您想要以写入模式打开文件,并希望截断文件,以防文件已存在,那么您可以使用下面的语法:

    1. ofstream outfile;
    2. outfile.open("file.dat", ios::out | ios::trunc );

    类似地,您如果想要打开一个文件用于读写,可以使用下面的语法:

    1. ifstream afile;
    2. afile.open("file.dat", ios::out | ios::in );

    https://cplusplus.com/reference/fstream/basic_ifstream/open/icon-default.png?t=N7T8https://cplusplus.com/reference/fstream/basic_ifstream/open/

    close关闭文件:

    当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。

    下面是 close() 函数的标准语法,close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

    void close();

    文件的读取和写入:

    • getline():从文件中逐行读取字符串。
    • read():按指定字节数读取二进制数据。
    • write():将数据以二进制形式写入文件。

    文件指针的定位:

    • seekg():将文件读取指针移动到指定位置。
    • seekp():将文件写入指针移动到指定位置。

    istream 和 ostream 都提供了用于重新定位文件位置指针的成员函数。这些成员函数包括关于 istream 的 seekg("seek get")和关于 ostream 的 seekp("seek put")。

    seekg 和 seekp 的参数通常是一个长整型。第二个参数可以用于指定查找方向。查找方向可以是 ios::beg(默认的,从流的开头开始定位),也可以是 ios::cur(从流的当前位置开始定位),也可以是 ios::end(从流的末尾开始定位)。

    文件位置指针是一个整数值,指定了从文件的起始位置到指针所在位置的字节数。下面是关于定位 "get" 文件位置指针的实例:

    1. // 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
    2. fileObject.seekg( n );
    3. // 把文件的读指针从 fileObject 当前位置向后移 n 个字节
    4. fileObject.seekg( n, ios::cur );
    5. // 把文件的读指针从 fileObject 末尾往回移 n 个字节
    6. fileObject.seekg( n, ios::end );
    7. // 定位到 fileObject 的末尾
    8. fileObject.seekg( 0, ios::end );

    文件操作的错误处理:

    • 可以使用 fail()、bad()、eof() 等函数来检查文件操作是否成功。
    • 可以使用异常处理机制来处理文件操作的异常情况。

    二、示例

    1、写文件

    2、读文件

    ref:

    C++ 文件操作 - 知乎

    c++文件读写(很全) - 知乎

    https://cplusplus.com/reference/fstream/

    C++ 文件和流 | 菜鸟教程

    std::basic_fstream - cppreference.com

    C++ fstream详解_windistance的博客-CSDN博客

  • 相关阅读:
    【排序算法】希尔排序(C语言)
    CommunityToolkit.Mvvm8.1 viewmodel使用-旧式写法(2)
    精品基于Uniapp+SSM实现的Android的餐饮管理系统
    (01)ORB-SLAM2源码无死角解析-(45) 跟踪线程→局部地图跟踪TrackLocalMap():主体流程
    三维模型3DTile格式轻量化顶点压缩主要技术方法分析
    three.js调试工具dat.gui使用
    Go语言入门【2】运算符
    牛视系统源码定制开发come here,抖音矩阵系统。
    【tcpdump命令使用总结】
    C++入门:C语言到C++的过渡
  • 原文地址:https://blog.csdn.net/wwwlyj123321/article/details/132636140
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号