下の様に、あらかじめ数が分からないintデータを、ファイルが終わるまでreadしたいのですが、
下のやり方だとreadが一回多くなってしまいます。
上手いやり方があったら教えて頂けないでしょうか。

#include <fstream>

int main(){
int writed_count=0, read_count=0;

std::ofstream ofile( "hoge", std::ios::binary );
for( int i=0; i<5; ++i ){
ofile.write( (const char*)&i, sizeof(int) );
++writed_count;
}
ofile.close();

int array[10] = {0};
int pos = 0;
std::ifstream ifile( "hoge" );
while( ! ifile.eof() ){
ifile.read( (char*)&array[pos], sizeof(int) );
++read_count;
++pos;
}
printf( "write count = %d\nread count = %d\n", writed_count, read_count );
return 0;
}