書き込み先の複数のファイルを連続して開いたり閉じたりするのを避けるために、ofstream オブジェクトのベクトルを使用しようとしています。これまでのところ、私のコードは次のようになります。
std::vector<shared_ptr<ofstream>> filelist;
void main()
{
for(int ii=0;ii<10;ii++)
{
string filename = "/dev/shm/table_"+int2string(ii)+".csv";
filelist.push_back(make_shared<ofstream>(filename.c_str()));
}
}
ofstream にはコピー コンストラクターがないため、ofstream ポインターのベクトルを使用しています。さらに、メモリリークに対してより堅牢であるはずの共有ポインターを使用しています。
上記は、ターゲットディレクトリに必要なファイルを正常に作成します。ファイルを閉じたい場合は、filelist[5]->close(); のようにできます。
私が確信していない唯一の部分は、これらの各ファイルに実際にどのように書き込むかです。通常、単一のファイルに対して、次のようなことを行います。
ofstream fout;
fout.open("myfile.txt");
fout<<"some text"<<endl;
この場合に使用したい << に相当するものは何ですか?