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