Я изучаю Boost, и я думаю, что вы можете использовать сериализацию Boost в качестве файла журнала и продолжать добавлять значения, используя свою логику. Я столкнулся с той же проблемой, и если я не ошибаюсь, ваш код был примерно таким:
#include <iostream>
#include <fstream>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
int main() {
int two=2;
for(int i=0;i<10;i++) {
std::ofstream ofs("table.txt");
boost::archive::text_oarchive om(ofs);
om << two;
two = two+30;
std::cout<<"\n"<<two;
}
return 0;
}
Здесь, когда вы закрываете фигурные скобки (скобки цикла), файл сериализации закрывается. И вы можете увидеть только одно значение, записанное в table.txt, если вы хотите сохранить несколько значений, ваш код должен выглядеть примерно так:
#include <iostream>
#include <fstream>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
int main() {
int two=2;
{
std::ofstream ofs("table.txt");
boost::archive::text_oarchive om(ofs);
for(int i=0;i<10;i++) {
om << two;
two = two+30;
std::cout<<"\n"<<two;
}
}
return 0;
}
Здесь вы можете видеть, что фигурные скобки, содержащие boost :: serialization :: text_oarchive, закрываются, только когда я закончу сериализацию результата моей логики.