我的代码存在问题。
我在代码中寻找的是随机获取“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();
}
}
答案 0 :(得分:5)
您正在错误的位置打开文件。您在循环之前打开一次文件,并在循环之后关闭文件一次。像这样。
myfile.open ("example.txt");
for (int i=0; i<100 ;i++)
{
...
}
myfile.close();
当您打开文件输出时,您将删除文件中当前的内容。因此,如果您在循环内打开文件,那么您将丢失之前编写的随机数。
答案 1 :(得分:1)
您正在循环中重新打开该文件。这会使文件每次都为零,因此您只能获得最后一个条目。
答案 2 :(得分:1)
ofstream
的默认开放标志是截断(覆盖)文件。您每次循环打开和关闭文件。如果你想要文件中的所有结果,那么在循环外打开它,并在循环后关闭它。