c++ - 一次又一次尝试在给出错误路径的同时打开文件

标签 c++ file fstream

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

  1. 打开给出路径的文件;
  2. 如果打开失败(显示哪个错误无关紧要),请问一条新路径;
  3. 处理文件;
  4. 关闭文件;

我唯一做不到的是第二点。我已经尝试过类似的想法:

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/

相关文章:

C++ 返回 boolean 值 95

c++ - 二叉树形成错误

c++ - 转换位数组以更快地设置

c - 程序读取文件时遇到问题

database - 将选项存储在数据库中还是文件中?

C++ 基本文件 i/o,读取失败

c++ - 获取我的文档的路径

iphone - FMDB数据库WithPath : not writing to disk

c++ - 每 X 行读取和写入文件

c++ - ofstream 不会写入所有内容——截断的数据