1.ifstream 类为例,通过 open 成员函数打开
注意到在流对象上执行 open 成员函数,给出文件名和打开模式,就可以打开文件。

判断文件打开是否成功,可以看“对象名”这个表达式的值是否为 true,如果为 true,则表示文件打开成功。

源码如下:

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream inFile;
    inFile.open("D:\\GRADE.txt", ios::in);
    if (inFile)  //条件成立,则说明文件打开成功
        inFile.close();
    else
        cout << "GRADE.txt doesn't exist" << endl;
    ofstream oFile;
    oFile.open("GRADE.txt", ios::out);
    if (!oFile)  //条件成立,则说明文件打开出错
        cout << "error 1" << endl;
    else
        oFile.close();
    oFile.open("d:\\out.txt", ios::out | ios::in);
    if (oFile)  //条件成立,则说明文件打开成功
        oFile.close();
    else
        cout << "error 2" << endl;
    fstream ioFile;
    ioFile.open("..\\o2ut.txt", ios::out | ios::in | ios::trunc);
    if (!ioFile)
        cout << "error 3" << endl;
    else
        ioFile.close();
    return 0;
}

注意,当不再对打开的文件进行任何操作时,应及时调用 .close() 成员方法关闭文件。在这里插入图片描述

2.通过在构造函数中给出文件名和打开模式打开文件。以 ifstream 类为例,定义流对象构造:

ifstream::ifstream (const char* szFileName, int mode = ios::in, int);

所以有如下的示例文件源:

/http://c.biancheng.net/view/294.html

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream inFile("c:\\tmp\\test.txt", ios::in);
    if (inFile)
        inFile.close();
    else
        cout << "test.txt doesn't exist" << endl;
    ofstream oFile("test1.txt", ios::out);
    if (!oFile)
        cout << "error 1";
    else
        oFile.close();
    fstream oFile2("tmp\\test2.txt", ios::out | ios::in);
    if (!oFile2)
        cout << "error 2";
    else
        oFile.close();
    return 0;
}

在这里插入图片描述
原文链接:http://c.biancheng.net/view/294.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐