改成这样: while(fin.read((char*)&aa,sizeof aa)) { fout.write((char*)&aa,sizeof aa); }eof这个函数,是最后一个字符的下一个字符。文件内容如果是“123”,则eof标志在第四位如果正好读了3个字符。文件指针在“3”的位置上,不是EOF。所以又循环了一次。