逻辑上好像有点问题:文件是读打开的,读取了3段,分别存到3个地方,无论是否到了文件末尾,文件就被fin.close();关闭了;然后把读取的3段分别存入另3个地方。但以上动作都在循环while (!fin.eof()){...}中,文件被关闭后,下一次却没有再打开的语句,所以只能读取一次文件就被永久关闭了。如果在while (!fin.eof()){...}中再次打开,那么问题又来了:重新打开文件时是从文件开头操作的,那循环什么时候结束呢?代码就无何止地读取前3段而不能退出循环了。建议不要在while (!fin.eof()){...}中关闭文件,把fin.close();移到while (!fin.eof()){...}后面,这样在文件结束时由while (!fin.eof()){...}中的!fin.eof()控制跳出循环,接着再关闭文件,逻辑上就顺当了……
// .........
fin.clear(); // 加此句。
fin.close();