重用流迭代器

时间:2016-08-04 14:26:24

标签: c++

我有一个文件需要在运行时多次打开。每次将一些文本附加到文件中。这是代码:

    ofstream fs;
    fs.open(debugfile, fstream::app);
    ostream_iterator<double> output(fs, " ");
    copy(starting_point.begin(), starting_point.end(), output);
    ...
    fs.open(debugfile, fstream::app);
    ostream_iterator<double> output1(fs, " ");
    copy(starting_point.begin(), starting_point.end(), output1);

我的问题是我可以使用一个流迭代器&#34;输出&#34;每次我打开文件,例如某种方式来清理它?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

ofstream fs;
fs.open(debugfile, fstream::app);
ostream_iterator<double> output(fs, " ");
copy(starting_point.begin(), starting_point.end(), output);
...
fs.open(debugfile, fstream::app);
output = ostream_iterator<double>(fs, " ");
copy(starting_point.begin(), starting_point.end(), output1);

这里使用相同的变量output来存储迭代器,但是迭代器本身是从头开始创建的,并使用operator =分配给该变量。

答案 1 :(得分:0)

对我来说,你的问题没有任何关系(appart重新分配价值)。

请不要忘记关闭并清除您的信息流,然后重新打开它:

std::ofstream file("1");
// ...
file.close();
file.clear(); // clear flags
file.open("2");

来自:C++ can I reuse fstream to open and write multiple files?