文件流状态的检查和is_open

流状态检查和is_open()

C++文件流从ios_base类哪里继承了一个流状态成员,通过该成员我们可以获得流状态的相关信息:一切顺利、已经到达文件尾、I/O操作失败等。

先看一下下面的代码
using namespace std;
int main(int argc, const char * argv[]) {


    //1.写入
    ofstream writeFile;
    writeFile.open("/Users/a1/Desktop/wenjianliu.txt");
    if (writeFile.is_open()) {
        cout << "请输入要写入的内容 : " << endl;
        string myWrite;
        cin >> myWrite;
        writeFile << myWrite << endl;
        writeFile.close();
    }else{
        cout << "打开失败" << endl;
    }




    //2.读取
    ifstream readFile;
    readFile.open("/Users/a1/Desktop/wenjianliu.txt");
    if (readFile.is_open()) {//打开文件成功

        char ch;
        while (readFile.get(ch)) {
            cout << ch ;
        }
        cout << "The End." << endl;
        readFile.close();

    }else{//打开文件失败
        cout << "打开失败" << endl;
    }


    return 0;
}

如上:

我们在打开一个文件进行读写操作时,首先会进行判断这个文件是否打开成功,除了

if (writeFile.is_open()) {
}

这种判断外,我们还有下面的三种方式:

if (writeFile.fail()) {//打开失败

}

if (!writeFile.good()) {//打开失败

}

if (!writeFile) {//打开失败

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ## 可重入函数 ### 可重入性的理解 若一个程序或子程序可以安全的被并行执行,则称其为可重入的;即当该子程序正...
    夏至亦韵阅读 4,030评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,403评论 19 139
  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 10,256评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,931评论 18 399
  • 红军得主虎添翼, 四渡赤水脱险域. 万里长征战腐恶. 北上抗日开新宇.
    老兵_李培义阅读 1,579评论 0 4