おわあ、途中でエンター間違えて押してしまった
すいません。正しくは以下

(Header省略)
void readfile (string &FileName, ifstream &inFile)
{
for (int i = 0; i <3; i++)
{
cin >>FileName;
inFile.open(FileName.c_str());
while (inFile.fail())
{
inFile.clear();
cout << "invalid file name, re-enter:";
cin >> FileName;
inFile.open(FileName.c_str());
}
(中略・各種データ操作)
inFile.clear();
}
}

ソフトはMSVisual Studio2008
これ実行すると二回目以降、ファイルの名前指定すると必ずファイル名が違います言われるんです……何が悪いんでしょう