每次运行时在文件中完成输出

时间:2015-06-10 09:17:43

标签: c++ filestream

如何避免每次运行时更新文件内容

#include <iostream>
#include <fstream>
#include <math>

using namespace std;

int main() {
  ofstream file("file.txt");
  v2 = rand() % 100 + 1;
  file<< v2;
  file.close();
  return 0 ;
}

我希望在每个包含新随机值的运行中添加一个新行,并保留在上一次运行期间写入的旧行。

2 个答案:

答案 0 :(得分:3)

您需要指定&#34;追加&#34;打开文件时的模式:

#include <iostream>
#include <fstream>
#include <math>

int main() {
  std::ofstream file("file.txt", std::ios_base::app);
  v2 = rand() % 100 + 1;
  file << v2;
  file.close();
  return 0 ;
}

有关详细信息,请参阅http://en.cppreference.com/w/cpp/io/basic_ofstream/basic_ofstreamhttp://en.cppreference.com/w/cpp/io/ios_base/openmode。打开输出文件而不指定打开模式,默认情况下会截断文件。

答案 1 :(得分:2)

默认情况下,打开文件进行写入会覆盖现有文件(如果有)。您需要指定保留文件的open mode。例如ateapp(选择哪一个取决于您的用例)。

This std::ofstream::open reference也可能会有所帮助。