我刚刚开始第一次使用 C++ 处理文件,我想编写一个正确的程序,它允许我:
- 打开给出路径的文件;
- 如果打开失败(显示哪个错误无关紧要),请问一条新路径;
- 处理文件;
- 关闭文件;
我唯一做不到的是第二点。我已经尝试过类似的想法:
do{
cout<<"Path: ";cin>>path;
f.open(path, ios::in);
}while(f.fail());
但是如果我写一个不存在的文件的路径,然后写一个我想打开的文件的路径,程序会不断地问我一个新的路径并且永远不会停止。
附言= 如果我想使用该条件来防止在使用 ios::out 创建新文件时出现错误(例如:包含非法字符的文件名/扩展名),情况会有所不同吗?
最佳答案
如果不成功,清除标志
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 ) ;
}
关于c++ - 一次又一次尝试在给出错误路径的同时打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26591973/