使用C++ ifstream读取二进制文件需以std::ios::binary模式打开,防止文本转换,再通过read()方法读取数据。

使用C++的
ifstream
使用
std::ifstream
std::ios::binary
std::ifstream file("data.bin", std::ios::binary);
if (!file) {
<strong>std::cerr << "无法打开文件!" << std::endl;</strong>
return -1;
}
根据需求选择不同的读取方式:
// 方法1:读取原始字节到char数组或uint8_t缓冲区 const size_t bufferSize = 1024; char buffer[bufferSize]; file.read(buffer, bufferSize); // 检查实际读取的字节数 std::streamsize bytesRead = file.gcount();
// 方法2:读取结构体
struct MyData {
int id;
float value;
char name[32];
};
MyData data;
file.read(reinterpret_cast<char*>(&data), sizeof(MyData));
if (file.good()) {
<strong>std::cout << "ID: " << data.id << ", Value: " << data.value << std::endl;</strong>
}
// 方法3:读取到std::vector<uint8_t> file.seekg(0, std::ios::end); // 定位到文件末尾 std::streamsize fileSize = file.tellg(); // 获取文件大小 file.seekg(0, std::ios::beg); // 回到开头 std::vector<uint8_t> fileData(fileSize); file.read(reinterpret_cast<char*>(fileData.data()), fileSize);
使用时需注意以下几点:
立即学习“C++免费学习笔记(深入)”;
file.good()
file.gcount()
file.close()
read()
以上就是C++如何使用ifstream读取二进制文件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号