如何使用 fstream,在 .txt 文件中写入不同的值

How to use fstream, to write different values in a .txt file

我面临的问题如下: 如果我们定义类似

ofstream myFile; 

    myFile.open("Directory//debug.txt");
    for (int i = 0; i < 10; i++)
    {
     myFile << i << endl;
     myFile.close(); 
    }

调试文件中的输出将为 9。 我想让它输出从 0 到 9 的所有数字。除了在 for 语句之后关闭文件之外,是否可以定义一个可以做到这一点的 ofstream?

没有。您有两个选择:

关闭循环外的文件:

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(); 
}
myFile.close(); 

应该放在for循环之后。还引入一些错误检查以查看 open 是否确实成功。

I am calling a function foo repeatedly in a function goo I create the file in foo and I want to output a new value each time foo is called in goo.

为了实现您的 objective 您可以在 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
}