如何避免每次运行时更新文件内容
#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 ;
}
我希望在每个包含新随机值的运行中添加一个新行,并保留在上一次运行期间写入的旧行。
答案 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_ofstream和http://en.cppreference.com/w/cpp/io/ios_base/openmode。打开输出文件而不指定打开模式,默认情况下会截断文件。
答案 1 :(得分:2)
默认情况下,打开文件进行写入会覆盖现有文件(如果有)。您需要指定保留文件的open mode。例如ate
或app
(选择哪一个取决于您的用例)。
This std::ofstream::open
reference也可能会有所帮助。