当前位置:首页 C++ > 正文

C++二进制文件读写(read和write)详解

作者:野牛程序员:2023-11-15 22:57:18 C++阅读 3394

C++中进行二进制文件的读写通常使用ifstream(用于读取)和ofstream(用于写入)类。下面是关于二进制文件读写的一些详细说明:

写入二进制文件(Write Binary File)

#include <iostream>
#include <fstream>

int main() {
    // 打开文件,如果文件不存在则创建,二进制写入模式
    std::ofstream outFile("binary_file.dat", std::ios::out | std::ios::binary);

    if (!outFile) {
        std::cerr << "无法打开文件" << std::endl;
        return 1;
    }

    // 写入数据
    int intValue = 42;
    double doubleValue = 3.14;

    outFile.write(reinterpret_cast<const char*>(&intValue), sizeof(int));
    outFile.write(reinterpret_cast<const char*>(&doubleValue), sizeof(double));

    // 关闭文件
    outFile.close();

    return 0;
}

上述代码演示了如何以二进制模式打开文件,并使用write函数将整数和双精度浮点数写入文件。reinterpret_cast用于将指向其他类型的指针转换为const char*类型的指针,以确保正确地将二进制数据写入文件。

读取二进制文件(Read Binary File)

#include <iostream>
#include <fstream>

int main() {
    // 打开文件,二进制读取模式
    std::ifstream inFile("binary_file.dat", std::ios::in | std::ios::binary);

    if (!inFile) {
        std::cerr << "无法打开文件" << std::endl;
        return 1;
    }

    // 读取数据
    int intValue;
    double doubleValue;

    inFile.read(reinterpret_cast<char*>(&intValue), sizeof(int));
    inFile.read(reinterpret_cast<char*>(&doubleValue), sizeof(double));

    // 关闭文件
    inFile.close();

    // 处理读取的数据
    std::cout << "整数值: " << intValue << std::endl;
    std::cout << "双精度浮点数值: " << doubleValue << std::endl;

    return 0;
}

上述代码演示了如何以二进制模式打开文件,并使用read函数从文件中读取整数和双精度浮点数。同样,reinterpret_cast用于将char*类型的指针转换为指向其他类型的指针,以确保正确地读取二进制数据。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击