文件流状态的检查和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) {//打开失败

}

你可能感兴趣的:(文件流状态的检查和is_open)