c++ fstream定位和读取指定大小
时间: 2024-03-02 22:48:36 浏览: 117
C++_fstream的使用方法
在++ 中,可以使用 `seekg()` 函数来定位文件读取指针的位置,使用 `read()` 函数来读取指定大小的数据。下面是一个例子:
```c++
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream infile("example.bin", ios::in | ios::binary); // 打开二进制文件
if (!infile) {
cerr << "Error: Cannot open file example.bin!" << endl;
exit(1);
}
int offset = 10; // 定位到第10个字节处
infile.seekg(offset, ios::beg); // 设置读取指针位置
int size = 5; // 读取5个字节
char* buffer = new char[size]; // 创建缓冲区
infile.read(buffer, size); // 读取数据到缓冲区
// 输出读取的数据
for (int i = 0; i < size; i++) {
cout << buffer[i] << " ";
}
cout << endl;
infile.close(); // 关闭文件
delete[] buffer; // 释放缓冲区内存
return 0;
}
```
在上面的代码中,首先使用 `ifstream` 打开一个二进制文件,然后使用 `seekg()` 函数将读取指针定位到第10个字节处,接着使用 `read()` 函数读取5个字节的数据到缓冲区中。最后输出读取的数据,关闭文件,并释放缓冲区内存。
注意,如果文件打开失败,需要使用 `cerr` 输出错误信息,并调用 `exit()` 函数退出程序。此外,如果不再需要使用缓冲区,需要使用 `delete[]` 运算符释放缓冲区内存,以避免内存泄漏。
阅读全文