我正在尝试编写HTML输出文件。这个文件写得很好,但是我想知道是否有办法用它的文件名取一个字符串,检查是否存在,如果是,则以某种方式更改该字符串。所以我永远不会覆盖现有的文件。
string outputFile;
cin>>outputFile;
ofstream out;
string path ="..\\data\\"+ outputFile+ ".html";
out.open(path.c_str());
所以在这种情况下,如果输出文件让我们说"耶稣"然后我想做点什么,如果我这样做3次,我会有像Jesus.html,Jesus2.html,Jesus3.html这样的东西。不必为此编号,只要对该字符串进行任何更改即可。这甚至可能吗?我试过这个
tmpnam()
但我真的不明白它应该如何运作,甚至可以使用它。
感谢您的帮助
答案 0 :(得分:1)
您可以使用此处提到的方法之一检查文件是否存在:
https://samsaffron.com/blog/archive/2007/04/04/14.aspx
完整的代码看起来像这样
inline bool file_exists (const std::string& name) {
struct stat buffer;
return (stat (name.c_str(), &buffer) == 0);
}
while (file_exists(file_name))
file_name += "_1";