2

我正在尝试用 C++ 读取文件。我向用户询问文件名,如果文件存在,我打开它,但如果它不存在,我会一直询问,直到输入有效的文件名。但是当用户首先输入错误的文件时,即使它输入了一个有效的文件名,之后我的程序也会将其识别为错误。这是我的代码:

ifstream input;
string filename;
cout<<"Enter the file name";
cin>>filename;
input.open(filename.c_str());
while(input.fail())
{
    cout<<"Incorrect filename, please enter again";
    cin>>filename;
    input.open(filename.c_str());
}

任何人都可以帮忙吗?谢谢

4

1 回答 1

4

输入错误时需要清除输入。尝试这个:

 ifstream input;
string filename;
cout<<"Enter the file name";
cin>>filename;
input.open(filename.c_str());
while(input.fail())
{
    input.clear();
    cout<<"Incorrect filename, please enter again";
    cin>>filename;
    input.open(filename.c_str());
}
于 2013-05-16T11:30:41.857 回答