我面临的问题如下: 如果我们定义像
这样的东西ofstream myFile;
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
myFile.close();
}
调试文件中的输出为9。
我想这样做,它输出0到9之间的所有数字。除了在for
语句后关闭文件,是否可以定义一个可以做到这一点的数据流?
答案 0 :(得分:1)
没有。您有两种选择:
关闭循环外的文件:
myFile.open("Directory//debug.txt");
for (int i = 0; i < 10; i++)
{
myFile << i << endl;
}
myFile.close();
或以附加模式打开文件并在循环内关闭:
for (int i = 0; i < 10; i++)
{
myFile.open("Directory//debug.txt", ios_base::app);
myFile << i << endl;
myFile.close();
}
答案 1 :(得分:1)
myFile.close();
应放在for循环之后。还介绍了一些错误检查,以确定open
是否确实成功。
我在函数goo中反复调用函数foo我创建了 文件在foo中,我想在每次调用foo时输出一个新值 在goo。
为了实现您的目标,您可以在foo
void foo()
{
static int count=0;
ofstream myfile;
myfile.open("Directory//debug.txt",std::fstream::app)
if (myfile.is_open()) // Checking is file is successfully opened.
{
count++;
myfile<<count<<"\n";
}
myfile.close; // Close the file
}