std::istream读取二进制文件
时间: 2023-07-02 22:05:49 浏览: 147
可以使用 std::ifstream 类来读取二进制文件。以下是一个示例:
```cpp
#include <iostream>
#include <fstream>
int main()
{
std::ifstream file("example.bin", std::ios::in | std::ios::binary);
if (!file)
{
std::cerr << "Failed to open file." << std::endl;
return 1;
}
int value;
while (file.read(reinterpret_cast<char*>(&value), sizeof(value)))
{
std::cout << value << std::endl;
}
file.close();
return 0;
}
```
在这个例子中,我们打开了名为 "example.bin" 的文件,并使用 std::ios::in 和 std::ios::binary 选项来打开该文件以进行读取。接下来,我们使用 std::ifstream::read() 函数来读取文件中的数据。这个函数需要两个参数:第一个是一个 char* 指针,指向要读取数据的缓冲区;第二个是要读取的字节数。在这个例子中,我们使用 reinterpret_cast 来将指向 int 类型的指针转换为指向 char 类型的指针,并使用 sizeof() 函数来获取 int 类型的大小。最后,我们在循环中输出读取的值,并在完成后关闭文件。
请注意,在读取二进制文件时,必须使用 std::ios::binary 标志来确保文件以二进制模式打开。否则,可能会发生不可预测的行为。