09-C++学习笔记-文件操作

在这里插入图片描述

📚 输入输出流的概念

在C++中,输入输出流是用于在程序和外部设备(如键盘、显示器、文件等)之间进行数据传输的机制。输入流用于从外部设备读取数据到程序中,输出流用于将程序中的数据输出到外部设备。

C++中的输入输出流分别通过iostream库提供的cincout对象来实现。cin用于输入流,cout用于输出流。我们可以使用它们来进行标准输入和输出。

示例:

#include <iostream>
using namespace std;

int main() {
    int num;
    cout << "请输入一个整数: ";
    cin >> num;
    cout << "您输入的整数是: " << num << endl;

    return 0;
}

在上述示例中,我们使用cout对象向控制台输出提示信息,使用cin对象从控制台读取用户输入的整数,并使用cout对象输出用户输入的整数。

🗂️ 文件流的概念

除了与标准输入输出相关的流外,C++还提供了文件流用于进行文件的读写操作。文件流通过fstream库提供的ifstreamofstream类来实现。ifstream用于读取文件内容,ofstream用于写入文件内容。

要使用文件流进行文件操作,首先需要打开文件。打开文件时需要指定文件的路径和打开方式。打开方式包括读取模式(ios::in)、写入模式(ios::out)、追加模式(ios::app)等。

示例:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream file("example.txt");   // 打开文件 example.txt,用于写入

    if (file.is_open()) {
        file << "Hello, File!" << endl;     // 向文件写入数据
        file.close();                       // 关闭文件
        cout << "文件写入成功。" << endl;
    } else {
        cout << "无法打开文件。" << endl;
    }

    return 0;
}

在上述示例中,我们使用ofstream类创建了一个文件流对象file,并将其与文件example.txt关联。然后,我们使用file对象向文件中写入数据,并在写入完成后关闭文件。

📁 文件操作

✨文本文件

文本文件是由字符组成的文件,可以使用普通的文本编辑器打开查看。在C++中,我们可以使用文件流进行文本文件的读写操作。

🔏 写文件

要向文本文件写入数据,我们需要使用ofstream类创建一个文件流对象,并将其与文件关联。然后,可以使用流插入运算符<<将数据写入文件。

示例:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream file

("example.txt");   // 打开文件 example.txt,用于写入

    if (file.is_open()) {
        file << "Hello, File!" << endl;     // 向文件写入数据
        file << "这是一个文本文件示例。" << endl;
        file.close();                       // 关闭文件
        cout << "文件写入成功。" << endl;
    } else {
        cout << "无法打开文件。" << endl;
    }

    return 0;
}

在上述示例中,我们向文件example.txt写入了两行文本数据。

🔏 读文件

要从文本文件读取数据,我们需要使用ifstream类创建一个文件流对象,并将其与文件关联。然后,可以使用流提取运算符>>从文件中读取数据。

示例:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ifstream file("example.txt");   // 打开文件 example.txt,用于读取

    if (file.is_open()) {
        string line;
        while (getline(file, line)) {   // 逐行读取文件内容
            cout << line << endl;       // 输出读取的数据
        }
        file.close();                   // 关闭文件
    } else {
        cout << "无法打开文件。" << endl;
    }

    return 0;
}

在上述示例中,我们使用ifstream类创建了一个文件流对象file,并将其与文件example.txt关联。然后,我们使用getline函数逐行读取文件内容,并将每行数据输出到控制台。

✨二进制文件

二进制文件是由二进制数据组成的文件,不能直接用文本编辑器打开查看。在C++中,我们可以使用文件流进行二进制文件的读写操作。

🔏 写文件

要向二进制文件写入数据,我们需要使用ofstream类创建一个文件流对象,并将其与文件关联。然后,可以使用write函数将数据写入文件。

示例:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream file("data.bin", ios::binary);   // 打开二进制文件 data.bin,用于写入

    if (file.is_open()) {
        int data[] = {10, 20, 30, 40, 50};
        int size = sizeof(data) / sizeof(data[0]);
        file.write(reinterpret_cast<char*>(&data), sizeof(data));    // 写入数据
        file.close();                                               // 关闭文件
        cout << "二进制文件写入成功。" << endl;
    } else {
        cout << "无法打开文件。" << endl;
    }

    return 0;
}

在上述示例中,我们向二进制文件data.bin写入了一个整型数组。

🔏 读文件

要从二进制文件读取数据,我们需要使用ifstream类创建一个文件流对象,并将其与文件关联。然后,可以使用read函数从文件中读取数据。

示例:

#include <iostream>
#include <fstream>
using namespace

 std;

int main() {
    ifstream file("data.bin", ios::binary);   // 打开二进制文件 data.bin,用于读取

    if (file.is_open()) {
        int data[5];
        file.read(reinterpret_cast<char*>(&data), sizeof(data));    // 读取数据
        file.close();                                               // 关闭文件

        int size = sizeof(data) / sizeof(data[0]);
        for (int i = 0; i < size; i++) {
            cout << data[i] << " ";     // 输出读取的数据
        }
        cout << endl;
    } else {
        cout << "无法打开文件。" << endl;
    }

    return 0;
}

在上述示例中,我们从二进制文件data.bin中读取了一个整型数组,并将其输出到控制台。

🔚总结

本次学习笔记介绍了C++中的文件操作。我们学习了文本文件和二进制文件的读写操作。通过文件流,我们可以方便地进行文件的输入输出,并且可以根据需要选择适合的读写模式。

文件操作在实际开发中非常常见,可以用于读取配置文件、保存数据等应用场景。掌握文件操作的基础知识对于提高程序的功能和灵活性非常重要。

希望本次学习对你有所帮助,继续加油!🚀

⭐️希望本篇文章对你有所帮助。

⭐️如果你有任何问题或疑惑,请随时向提问。

⭐️感谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逸峰轻云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值