c++用二进制读取和写入dat文件
时间: 2023-10-28 14:06:08 浏览: 596
使用 C++ 读取和写入二进制数据文件(.dat)可以使用流(stream)类来实现。具体步骤如下:
1. 打开文件:使用 std::fstream 类的 open() 函数打开文件,指定文件名和打开模式(输入、输出、二进制等)。
2. 写入数据:使用流对象的 write() 函数将数据写入文件。write() 函数需要传入两个参数:第一个参数是指向要写入的数据的指针,第二个参数是要写入的字节数。
3. 读取数据:使用流对象的 read() 函数从文件中读取数据。read() 函数需要传入两个参数:第一个参数是指向要读取的数据的指针,第二个参数是要读取的字节数。
4. 关闭文件:使用流对象的 close() 函数关闭文件。
下面是一个简单的示例代码,演示如何使用流类读取和写入二进制数据文件:
```c++
#include <iostream>
#include <fstream>
using namespace std;
struct Person {
char name[20];
int age;
};
int main() {
// 打开文件
fstream file("person.dat", ios::binary|ios::in|ios::out);
// 写入数据
Person p1 = {"Tom", 20};
file.write((char*)&p1, sizeof(p1));
// 读取数据
file.seekg(0, ios::beg); // 将文件指针移动到文件开头
Person p2;
file.read((char*)&p2, sizeof(p2));
cout << "Name: " << p2.name << endl;
cout << "Age: " << p2.age << endl;
// 关闭文件
file.close();
return 0;
}
```
在上面的代码中,我们使用了一个结构体 Person 来存储数据。首先,我们创建了一个 fstream 对象来打开文件 "person.dat",并指定了打开模式为二进制输入输出模式。然后,我们使用 write() 函数将一个 Person 对象写入到文件中。接着,我们使用 seekg() 函数将文件指针移动到文件开头,然后使用 read() 函数从文件中读取一个 Person 对象,并将其存储到 p2 变量中。最后,我们输出了读取到的数据,并关闭了文件。
注意,在使用文件流读取和写入二进制数据时,需要使用 char* 类型的指针来强制转换数据类型。此外,还需要使用 seekg() 函数来移动文件指针的位置。
阅读全文