695さん、696さん、ありがとうございました!!
fin.clear();で解決できました。

ただ、fin.seekg(0,ios::beg);の後に
perror("perror says :" );としたところ、うまくできる時
(clesrしたとき)もうまくいかない時(clearしないとき)も
同じ値でした。エラーにはなってないのですかね。