我刚开始使用C ++开始处理文件,我想写一个正确的程序,它允许我:
我唯一不能做的就是第二点。我已经尝试了一些想法:
do{
cout<<"Path: ";cin>>path;
f.open(path, ios::in);
}while(f.fail());
但是如果我写了一个不存在的文件的路径,然后写了我要打开的文件的路径,那么程序会不断地问我一条新路径并且永远不会停止。
P.S。 =如果我想使用 ios :: out 创建新文件时使用该条件来防止错误(例如:包含非法字符的文件名/扩展名)会不同?
答案 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 ) ;
}