C++中怎么检测二进制文件的EOF

c++
1428
2024/3/24 10:54:08
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,可以使用std::ifstream类来读取二进制文件并检测EOF。

以下是一个示例代码:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("binary_file.dat", std::ios::binary);
    
    if(!file.is_open()) {
        std::cerr << "Error opening file" << std::endl;
        return 1;
    }
    
    char byte;
    
    while(file.read(&byte, 1)) {
        // process byte
    }
    
    if(file.eof()) {
        std::cout << "End of file reached" << std::endl;
    } else {
        std::cerr << "Error reading file" << std::endl;
    }
    
    file.close();
    
    return 0;
}

在上面的代码中,我们首先打开一个二进制文件binary_file.dat,然后使用while循环读取文件中的字节数据。当file.read(&byte, 1)返回false时,表示已经读取到文件末尾(EOF)。此时可以通过file.eof()函数来检测是否已经到达文件末尾。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++中unordered_set的特性有哪些