一次又一次地尝试打开文件,同时给出错误的路径

时间:2014-10-27 16:15:51

标签: c++ file fstream

我刚开始使用C ++开始处理文件,我想写一个正确的程序,它允许我:

  1. 打开提供路径的文件;
  2. 如果无法打开(显示哪个错误无关紧要),请询问新路径;
  3. 处理文件;
  4. 关闭文件;
  5. 我唯一不能做的就是第二点。我已经尝试了一些想法:

    do{
        cout<<"Path: ";cin>>path;
        f.open(path, ios::in);
    }while(f.fail());
    

    但是如果我写了一个不存在的文件的路径,然后写了我要打开的文件的路径,那么程序会不断地问我一条新路径并且永远不会停止。

    P.S。 =如果我想使用 ios :: out 创建新文件时使用该条件来防止错误(例如:包含非法字符的文件名/扩展名)会不同?

1 个答案:

答案 0 :(得分:1)

如果标志不成功,请清除标志

f.open( path, ios::in ) ;
while( f.fail() )
{
    f.clear();
    std::cout<<"Incorrect file path, Re-Enter ";
    std::cin>>path;
    f.open( path, ios::in ) ;
}