使用标题创建文件或附加c ++

时间:2018-03-24 10:29:38

标签: c++ file

我正在使用带有选项“std :: ios :: out | std :: ios :: app”的open函数来创建文件或附加到它,但现在我需要区分文件的情况存在于文件不存在的情况。事实上,如果文件不存在,我必须创建它并添加一个标题(开头的字符串),否则我必须将内容附加到文件.. 我该怎么做?我已经读过有关fstat函数,如果发生错误则返回-1。如果fstat返回-1,那么我可以确定该文件不存在吗?

由于

2 个答案:

答案 0 :(得分:0)

测试文件是否不存在的最简单方法是使用ios :: in标志打开它。如果失败,则该文件不存在。

答案 1 :(得分:0)

最简单的方法是手动检查文件是否存在,然后根据案例采取行动。

bool exists_file(const std::string& name) {
    ifstream f(name.c_str());
    return f.good();
}

int main() {
    std::string filename = "somefile.txt";

    std::fstream file;
    if(!exists_file(filename)) {
        file.open(filename, std::ios::out);
        write_headers(file);
    }
    else {
        file.open(filename, std::ios::out | std::ios::app);
    }

    write_something(file);
    file.close();

    return 0;
}