C++文件从操作:

1.文件操作 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放。通过文件可以将数据持久化。

C++ 中对文件操作需要包含头文件 <fstream> 文件类型分为两种:

  1. 文本文件 - 文件以文本的 ASCII 码形式存储在计算机中

  2. 二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们

操作文件的三大类:

  1. ofstream:写操作

  2. ifstream:读操作

  3. fstream:读写操作

1.2 文本文件 5.1.1 写文件 写文件步骤如下:

  1. 包含头文件#include <fstream>

  2. 创建流对象ofstream ofs;

  3. 打开文件ofs.open("文件路径", 打开方式);

  4. 写数据ofs << "写入的数据";

  5. 关闭文件ofs.close();

打开方式 解释
ios::in 为读文件而打开文件
ios::out 为写文件而打开文件
ios::ate 初始位置:文件尾
ios::app 追加方式写文件
ios::trunc 如果文件存在先删除,再创建
ios::binary 二进制方式
cpp 复制代码
#include <iostream>
#include <fstream>
using namespace std;

// 写文件
void writeFile() {
    ofstream ofs("test.txt",ios::out); // 创建并打开文件
    ofs << "Hello, File Operation!" << endl;
    ofs << "C++文件操作测试" << endl;
    ofs.close(); // 关闭文件
}

// 读文件
void readFile() {
    ifstream ifs("test.txt",ios::in);
    if (!ifs.is_open()) { // 判断文件是否成功打开
        cout << "文件打开失败" << endl;
        return;
    }

    string buf;
    while (getline(ifs, buf)) { // 按行读取
        cout << buf << endl;
    }
    ifs.close();
}

int main() {
    writeFile();
    readFile();
    return 0;
}

2.1二进制文件 以二进制的方式对文件进行读写操作。

打开方式要指定为 ios::binary。

2.2写文件 二进制方式写文件主要利用流对象调用成员函数 write。

函数原型:ostream& write(const char * buffer, int len);

参数解释:字符指针 buffer 指向内存中一段存储空间,len 是读写的字节数。

cpp 复制代码
#include <iostream>
#include <fstream>
using namespace std;

class Person {
public:
    char m_Name[64]; // 姓名
    int m_Age;      // 年龄
};

int main() {
    // 1. 包含头文件
    // 2. 创建流对象
    ofstream ofs;
    // 3. 打开文件,指定为二进制写模式
    ofs.open("person.bin", ios::out | ios::binary);

    Person p = {"张三", 18};
    // 4. 写数据(将Person对象以二进制形式写入)
    ofs.write((const char*)&p, sizeof(Person));

    // 5. 关闭文件
    ofs.close();

    cout << "二进制文件写入完成" << endl;
    return 0;
}
相关推荐
qq_199886873 分钟前
第7板块·第3节:CUTLASS 的 GEMM 实现与优化策略
c++·人工智能·gpu算力·cuda
hetao17338376 分钟前
2026-09-17 hetao1733837 的刷题记录
c++·算法
blue_ice .9 分钟前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^1382879887238 分钟前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
shada1 小时前
Boost.Process v2 在旧内核上报 `assign: Bad file descriptor`
c++
泡海椒1 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)2 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
别动我齐刘海2 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
2501_933670792 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2333 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium