使用C ++将结果保存到文件中

时间:2012-10-28 22:15:45

标签: c++ visual-c++ c++builder

我的代码存在问题。

我在代码中寻找的是随机获取“first”和“second”的结果并将结果放入文件中。

如果我在不使用文件的情况下运行它并且我得到了所有正确的结果,那么效果很好但是当我尝试将结果保存到文件中时,我只得到第一个包含(first,secnd)的节点。

以下是代码:

#include<iostream>
#include <fstream>
#include<cmath>

using namespace std;

void main() 
{
    int first[100],secnd[100];

    for (int i=0; i<100 ;i++)
    {   
        first[i]=rand()%500;  //random number from  to 499
        secnd[i]=rand()%500;  //random number from  to 499
        ofstream myfile;
        myfile.open ("example.txt");
        myfile << "Writing this to a file.\n";
        myfile <<first[i]<<" "<<secnd[i];
        myfile.close();
    }
}

3 个答案:

答案 0 :(得分:5)

您正在错误的位置打开文件。您在循环之前打开一次文件,并在循环之后关闭文件一次。像这样。

myfile.open ("example.txt");
for (int i=0; i<100 ;i++)
{   
   ...
}
myfile.close();

当您打开文件输出时,您将删除文件中当前的内容。因此,如果您在循环内打开文件,那么您将丢失之前编写的随机数。

答案 1 :(得分:1)

您正在循环中重新打开该文件。这会使文件每次都为零,因此您只能获得最后一个条目。

答案 2 :(得分:1)

ofstream的默认开放标志是截断(覆盖)文件。您每次循环打开和关闭文件。如果你想要文件中的所有结果,那么在循环外打开它,并在循环后关闭它。