C++中文件的读写

C++ 中进行文件读写操作通常使用 fstream 类的对象,其中 ifstream 用于文件读取,ofstream 用于文件写入,而 fstream 则可用于同时进行读写操作。以下是一些常见的文件读写操作的示例代码:

文件写入(写入数据到文件)

#include <iostream>
#include <fstream>

int main() {
    // 创建 ofstream 对象,以输出模式打开文件
    std::ofstream ofs("example.txt", std::ios::out);

    // 检查文件是否成功打开
    if (!ofs.is_open()) {
        std::cerr << "无法打开文件" << std::endl;
        return 1;  // 返回错误代码
    }

    // 向文件写入数据
    ofs << "Hello, World!" << std::endl;
    ofs << "This is a C++ file write example." << std::endl;

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

    return 0;  // 返回成功代码
}

文件读取(从文件读取数据)

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // 创建 ifstream 对象,以输入模式打开文件
    std::ifstream ifs("example.txt", std::ios::in);

    // 检查文件是否成功打开
    if (!ifs.is_open()) {
        std::cerr << "无法打开文件" << std::endl;
        return 1;  // 返回错误代码
    }

    // 从文件读取数据
    std::string line;
    while (std::getline(ifs, line)) {
        std::cout << line << std::endl;
    }

    // 关闭文件流
    ifs.close();

    return 0;  // 返回成功代码
}

这两个示例分别演示了文件写入和文件读取的基本操作。在写入示例中,ofstream 对象被用于创建或打开文件,并使用 << 操作符将数据写入文件。在读取示例中,ifstream 对象被用于打开文件,并使用 getline 函数逐行读取文件内容。

请注意,这只是基本的文件读写示例。在实际应用中,你可能需要更多的错误检查、异常处理以及对文件操作的更复杂管理。
在C++中,你可以使用二进制模式进行文件的读写,这可以通过 ios::binary 标志来实现。以下是一个简单的例子,演示如何以二进制模式进行文件读写:

二进制文件写入

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    // 创建 ofstream 对象,以二进制输出模式打开文件
    ofstream ofs("binary_data.dat", ios::out | ios::binary);

    // 检查文件是否成功打开
    if (!ofs.is_open()) {
        cerr << "无法打开二进制文件" << endl;
        return 1;  // 返回错误代码
    }

    // 写入二进制数据
    int data[] = {1, 2, 3, 4, 5};
    ofs.write(reinterpret_cast<char*>(data), sizeof(data));

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

    return 0;  // 返回成功代码
}

在这个例子中,ios::binary 标志用于指示文件以二进制模式打开。write 函数被用于写入二进制数据,reinterpret_cast 用于将整数数组转换为字符指针,确保以二进制方式写入。

二进制文件读取

#include <iostream>
#include <fstream>

using namespace std;

int main() {
    // 创建 ifstream 对象,以二进制输入模式打开文件
    ifstream ifs("binary_data.dat", ios::in | ios::binary);

    // 检查文件是否成功打开
    if (!ifs.is_open()) {
        cerr << "无法打开二进制文件" << endl;
        return 1;  // 返回错误代码
    }

    // 读取二进制数据
    int data[5];
    ifs.read(reinterpret_cast<char*>(data), sizeof(data));

    // 输出读取的数据
    for (int i = 0; i < 5; ++i) {
        cout << "Data[" << i << "]: " << data[i] << endl;
    }

    // 关闭文件流
    ifs.close();

    return 0;  // 返回成功代码
}

在这个例子中,同样使用了 ios::binary 标志来指示文件以二进制模式打开。read 函数用于从文件中读取二进制数据,并将其存储在整数数组中。最后,通过循环输出读取的数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值