函数,它将字符串和数字作为创建文件名

时间:2016-10-15 15:31:45

标签: php c++

我必须在循环中创建不同的数据文件。 我想生成三种文件类型,如

typeA%00d.txt,

typeB%00d.txt和

typeC%00d.txt

为此,我想实现一个以序列号和字符串作为参数的函数。

类似的东西:

void make_file(paarvec data, int count){ 

 int size = data.size();
 char filename[160];
 sprintf(filename, "name%03d.txt", count);

 ofstream out_data(filename);
 for(int n=0; n<size; ++n){
    out_data << data[n].first << "\t" << data[n].second << endl;
    }
 out_data.close();
}

但有没有办法我也可以更改&#34;名称&#34;带参数的文件。所以我可以写:

std::string timestring = "timedata";
std::string timestring = "pathdata";
...

for(int i=0; i<N; ++i){
  ...
  make_file(time_data, timestring ,count);
  make_file(frac_data, fracstring ,count);
  make_file(path_data, pathstring ,count);
}  

1 个答案:

答案 0 :(得分:1)

只需将您的功能更改为:

void make_file(paarvec data, const std::string &name, int count){ 

  int size = data.size();
  char filename[160];
  snprintf(filename, sizeof(filename), "%s%03d.txt", name.c_str(), count);
  ...

注意我将sprintf更改为snprintf - 这是一个很好的习惯,可以防止代码中出现意外错误,例如缓冲区溢出。