визуальное сохранение результатов в файл в Stack Overflow

У меня проблема с этим кодом.

То, что я ищу в коде — это получить результаты «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();
}
}

-4

Решение

Вы открываете свой файл не в том месте. Вы открываете файл один раз перед циклом и закройте файл один раз после петли. Как это.

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

Когда вы открываете файл для вывода, вы удаляете то, что в данный момент находится в файле. Поэтому, если вы откроете файл внутри цикла, вы потеряете случайные числа, которые вы написали ранее.

5

Другие решения

Открытые флаги по умолчанию для ofstream должны усечь (перезаписать) файл. Вы открываете и закрываете файл каждый раз через цикл. Если вам нужны все результаты в файле, то откройте его ОДИН РАЗ за пределами цикла и закройте после цикла.

1

Вы открываете файл в цикле. Это обнуляет файл каждый раз, так что вы получите только последнюю запись.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector