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

时间:2016-08-24 11:27:40

标签: c++ fstream file-handling ofstream

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

这样的东西
ofstream myFile; 

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

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

2 个答案:

答案 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
}