gpt4 book ai didi

c++ - 创建新文本文件 C++ 的问题

转载 作者:行者123 更新时间:2023-11-28 06:55:44 24 4
gpt4 key购买 nike

我似乎在尝试完成我的 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。该函数结束的原因实际上是因为您忘记在打开第二个文件之前关闭第一个文件(see here)。该操作失败,设置故障位。这就是为什么您的新文件永远不会创建,并且您以前的文件会被覆盖的原因。

我不确定在 C++ 中检查文件是否(预先)存在的好、标准的方法,但是 this听起来像您可能想要的。

关于c++ - 创建新文本文件 C++ 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com