【发布时间】:2014-04-21 20:08:31
【问题描述】:
我似乎在尝试完成我的 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;
}
}
谢谢。
【问题讨论】:
-
因为如果打开输出文件(
good返回 true),第一个条件 -if(output.good())- 始终为 true,而validFile永远不会设置为true。 -
它确实完成了。而且我认为 output.open(to_string(fileIncrement + "output.txt"); 会更改打开的文件,从而创建一个新文件?...它确实做到了并完成了,所以它不能被卡住循环
-
启动调试器并单步执行代码。
-
我已经完成了。一切顺利,这就是我如此困惑的原因。之后我检查文件,如果“output.txt”已经存在,那么它只是删除它的内容,但从不创建一个“1output.txt”,就像它应该归结为逻辑
-
我添加了 output.close();下validFile = true;还是没有运气
标签: c++ file text-files output fstream