C++二进制文件读写(read和write)详解
作者:野牛程序员:2023-11-15 22:57:18 C++阅读 3694
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++文件读取最后一行读取两次的问题
