在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()
函数来检测是否已经到达文件末尾。