【发布时间】:2019-05-30 20:44:21
【问题描述】:
我想在两个循环中创建一些文件并在不关闭第一个和第二个循环内的文件的情况下填写它们。
在这里,您可以通过查看代码的这一部分来找到我对这个问题的意思,但它不起作用......当然,它会创建 100 个文件,但问题是每个文件只包含最后一次迭代第一个循环,而我希望每个文件都编写第一个循环的整个迭代。
ofstream fout;
for(int t = 0; t < N; t++){
for(int e = 0; e < 100; e++){
fout.open("myfile_"+strcpp(e)+".txt");
fout << t << psi[e] << endl;
}
}
fout.close();
函数strcpp(e)由下式给出
template <class T>
string strcpp(T value){
ostringstream out;
out << value;
return out.str();
}
【问题讨论】:
-
然后把
fout.open()放到第二个循环外面。 -
@Michael Chourdakis 它已经在第二个循环之外了!!
-
一个问题是在知道
e的值之前无法创建文件名。您可能想要交换for语句(for e先出现)。 -
@thomas-matthews 这可能是一个解决方案,但关键是它需要时间,假设
N=100000并且外循环的每次迭代需要 $1min$。
标签: c++