读取二进制文件有关问题

读取二进制文件问题ifstream in(1.bin, ios::_Nocreate |ios::binary)ofstream out(2.bin,ios::binar

读取二进制文件问题
ifstream in("1.bin", ios::_Nocreate |ios::binary);
ofstream out("2.bin",ios::binary);

if(in==NULL)
cout<<"cannot open this file"<<endl;
else
{
while(!in.eof())
{
  char buff[5];
  in.read(buff,5);
  out.write(buff,5);
}
}
in.close();
out.close();

1.bin文件为二进制文件,大小只有5字节,为什么读完一次后,文件并没有到eof,再读了一次?不要求一次读完整个文件,每次只读5字节。
[解决办法]
http://blog.csdn.net/wangran51/article/details/8315499