C ++在循环中打开多个流
C++ open multiple ofstreams in a loop
我需要用 ofstream 打开未定义数量的文件来写入。文件名的格式应为 plot1.xpm、plot2.xpm、plot3.xpm、...。
该程序如下所示:
我不知道我应该给星星加什么。
for(m = 0; m < spf; m++){
//some calculations on arr[]
ofstream output(???);
for(x = 0; x < n; x++){
for(y = 0; y < n; y++){
if (arr[x*n + y] == 0)
output<<0;
else output<<1;
}
output<<'\n';
output.close();
}
使用to_string
:
std::string filename = "plot" + std::to_string(m) + ".xpm";
std::ofstream output(filename.c_str());
如果模式比较复杂你也可以使用std::stringstream
:
std::stringstream filename_stream;
// use "operator<<" on stream to plug in parts of the file name
filename_stream << "plot" << m << ".xpm";
std::string filename = filename_stream.str();
std::ofstream output(filename.c_str());
我需要用 ofstream 打开未定义数量的文件来写入。文件名的格式应为 plot1.xpm、plot2.xpm、plot3.xpm、...。 该程序如下所示: 我不知道我应该给星星加什么。
for(m = 0; m < spf; m++){
//some calculations on arr[]
ofstream output(???);
for(x = 0; x < n; x++){
for(y = 0; y < n; y++){
if (arr[x*n + y] == 0)
output<<0;
else output<<1;
}
output<<'\n';
output.close();
}
使用to_string
:
std::string filename = "plot" + std::to_string(m) + ".xpm";
std::ofstream output(filename.c_str());
如果模式比较复杂你也可以使用std::stringstream
:
std::stringstream filename_stream;
// use "operator<<" on stream to plug in parts of the file name
filename_stream << "plot" << m << ".xpm";
std::string filename = filename_stream.str();
std::ofstream output(filename.c_str());