ofstream,什么时候会失败而不是创建一个新文件?

时间:2015-10-02 14:06:44

标签: c++ fstream ofstream

我刚开始阅读有关如何打开和编辑文件的内容。 使用ifstream时,如果文件不存在,则不会创建。

在参考下面的代码时,条件(!outfile)何时为false,就好像文件不存在一样,它只是由构造函数创建,因此总是使条件为false。

int main() 
{
    ofstream outfile ("test1.txt");

    if (!outfile) 
    {
        cout << "cannot create file test1.txt" << endl; 
        return 1;
    }
    outfile << 10 << " " << 345.12 << endl;
    outfile << "This is a short text file";
    outfile.close();

    system("PAUSE");
    return 0;
}

1 个答案:

答案 0 :(得分:1)

打开ofstream失败的一种方法是,如果给定路径中的文件存在,但您没有写入该文件的权限。或者,如果文件不存在但您没有权限在给定路径中创建文件,则打开ofstream也会失败。

另一种失败的情况可能是文件不存在,并且底层设备没有足够的可用空间/ inode来创建一个。