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;
}
相关推荐
m0_547486667 小时前
《JavaScript核心原理 》全套PPT课件2026
开发语言·javascript·ecmascript
老当益壮梁奶奶7 小时前
Linux软件编程学习笔记(七):线程分离与线程间通信详解
linux·c语言·c++·笔记·学习
MC皮蛋侠客7 小时前
Tauri 2.x 系列(五):调用系统 API——官方插件、Rust crate 与原生能力
开发语言·后端·rust
布莱克6058 小时前
软中断和硬中断的区别
开发语言·操作系统
whcyhhh9 小时前
头歌实践教学平台:数据科学与大数据技术导论(十二)
大数据·开发语言·python·数据清洗
lzhdim9 小时前
13、JavaScript事件循环机制 - JavaScript学习系列文章
开发语言·前端·javascript·学习·ecmascript
zbyyd10 小时前
Linux 多线程:互斥锁 &amp; 信号量
linux·c语言·开发语言·网络
wuyk55510 小时前
从零吃透Modbus通信|第3章:STM32 Modbus RTU主机
服务器·开发语言·网络·数据结构·stm32·单片机·嵌入式硬件
one31211 小时前
高精度MEMS电容式倾角传感器:原理、结构与Python三维可视化
开发语言·python
程序员小八77711 小时前
Go 语言特性
开发语言·后端·golang