创建新文本文件C++时出现问题



我在完成C++程序时似乎遇到了一些问题,我会寻求一些帮助。

在我的程序结束时,我也需要它输出到一个文本文件。我尝试了各种方法,使用fstream和ofstream来检查文件是否存在,如果存在,则创建一个新文件,尽管我运气不佳。

到目前为止,这就是我所处的位置,但如果"output.txt"存在,那么它只会删除其中的内容,不会创建任何内容,但不会崩溃。

...
ofstream output;
int fileIncrement = 0;
bool validFile = false;
cout << "Saving File.." << endl;
output.open("output.txt");
while (!validFile)
{
    if (output.good()) //  does exist
    {
        fileIncrement++;
        output.open(to_string(fileIncrement) + "output.txt");
    }
    else
    {
        myVectors.outputVectors(output);
        validFile = true;
    }
}

谢谢。

output.good()只是检查文件的可访问性。如果它还没有出现,它将被创建。因此Captian Oblivious评论说validFile永远不会设置为true。函数结束的原因实际上是因为在打开第二个文件之前忘记关闭第一个文件(请参见此处)。该操作失败,设置了故障位。这就是为什么你的新文件永远不会被创建,而你以前的文件会被覆盖。

我不确定有什么好的、标准的方法来检查C++中文件的(预)存在,但这听起来可能是你想要的。

相关内容

  • 没有找到相关文章

最新更新