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

- 上一篇:c++文本文件读写
- 下一篇:c++文件读取最后一行读取两次的问题